Well I've been bashing away at this rsync problem I've had and have finally found the cause, if not the cure.
I was trying to to a big rsync upload of data from my home Linux box to a remote system, a total of 35Mb or so and the rsync was simply hanging after a fairly short while, usually on big files.
It turns out that my router loses sync when doing the upload, it looks like it can't cope when saturated in the upload direction. It's a Zyxel 660H, I've fired off a report to their support people but I'm not sure how much good that's going to do.
A workaround for the moment is simply to limit the bandwidth that rsync uses, it has a convenient --bwlimit option to do exactly this. As it's just an overnight backup, making it a bit slower doesn't really matter. I'm testing it with the limit set to 64kb/s at the moment and it seems to be going OK.