Question: given a process that has been running for over 48 hours, how long should I allow it to run with the estimated time remaining at five seconds?
Some days, you just have to ask yourself, <Am I the sort of degenerate who's going to go read the rsync code and see if it properly handles hardlinked directories?>
(The answer is yes. It's not obviously broken at first glance, but I'm not going to go further than that.)
Rsync is designed to do a network sync. It wants to run a process on the source and a process on the destination.
When the destination is a network drive, mounted locally, the destination process runs locally, and does all the necessary reading off of the network drive.
Apple has done some kind of extra bullshit that makes this not work.
I don't know if it's System Integrity Protection on the backup folder, or some extra spicy ACL bullshit that rsync doesn't know. Either way, it prevents rsync from creating directories on the target drive.
So it finally completed and I'm now backing up to my network drive.