I've tested using '-p', '-r' and '-w' options and it didn't make any difference in transfer rate (our sample bcl2fastq time is 12 hours). The test platform was a heavy i3en.12xlarge with mounted NVMe drive.
The only way I can't think of is to find a way to do S3 to S3 and run bcl2fastq locally (but I don't know how as I've mentioned above).
Also is there any way I can know a sample is ready to pick up (e.g. a file in Runs or Projects folder)? The presence of a folder in Runs can not be used as a trigger since the folder might be still in progress.