non-blocking mode on stdin makes this much hardier
shift rsync args to the do_rsync caller
-nobuffer also seems to help with reliability (i.e., not stopping at a
random point in the transfer)
windows 'support'

performance is terrible (a few kbytes/s) under cygwin with the expect
wrapper, so we'll wrap rsync instead