Thank you for the advice Les. I compiled rsync 2.6.9 and tried a restore with it. It seems to hang now once it's got past the last file of the restore - I've run strace against the rsync processes and I can see it close the last file and then just hang, with this sort of output:
[pid 15625] select(4, [3], [], NULL, {53, 660732} <unfinished ...>
[pid 15624] select(7, [3 6], [], NULL, NULL <unfinished ...>
[pid 15662] select(1, [0], [], NULL, {6, 915513}) = 0 (Timeout)
[pid 15662] select(1, [0], [], NULL, {60, 0} <unfinished ...>
[pid 15625] <... select resumed> ) = 0 (Timeout)
[pid 15625] select(4, [3], [], NULL, {60, 0} <unfinished ...>
[pid 15662] <... select resumed> ) = 0 (Timeout)
Do you know what that might indicate about the restore?
With regards to tar, I don't care much about the bandwidth, but the speed of rsync would be very useful for the restores. I'll have a look at how fast tar is over SSH.