I solve part of your problem by having a script checking byte-by-byte in slices like this:
rclone check Orig: CryptBackup: --download --min-age 2019-01-01
rclone check Orig: CryptBackup: --download --max-age 2019-01-01 --min-age-2020-01-01
rclone check Orig: CryptBackup: --download --max-age 2020-01-01 --min-age-2021-01-01
rclone check Orig: CryptBackup: --download --max-age 2021-01-01
This implements --very-paranoid
(except for dates) and eliminates the need for --resume
and --exclude-checked
for me, by retrying any failing jobs.
For my remotes and data performance is best when also using --checkers 8 --multi-thread-streams 2 --order-by ‘size,mixed,75’ --max-backlog 100000
I am considering enhancing rclone check
to check dates by default (unless --ignore-times) and save some time by using single-sided downloads. No promises