More client mode cleanup

Futures blockForPending allows canceled tasks without dying.
More cleanup on reboot/2nd-client appearing
Uniform notion of client timing out (currently set to a very-quick 1sec)
Cancel tasks under a variety of circumstances when a client disappears.
Test with 3 client up/downs