Could you elaborate on where the btrfs snapshots come into play? I use rsnapshot on a plain ext4 fs and it’s pretty slow (lots of small files).
Instead, they make sure the files aren't changing / being deleted between when the rsync starts and finishes.