Why do you choose not to use Btrfs' send and receive commands? They do what rsync does, a bit more efficiently, unless I am missing something.
http://marc.merlins.org/perso/btrfs/post_2014-03-22_Btrfs-Ti...
http://marc.merlins.org/perso/btrfs/post_2014-03-22_Btrfs-Ti...
[0] https://linux.die.net/man/7/capabilities
rsync has the upside of being universal.