INT-2620 Fix Race Condition in Failover Tests

Sporadic test failures (fairly consistently on Mac).

Problem was some tests sent a message to a client socket before the
close notification had been received.

Wait for client connection to close rather than waiting for the
server to stop.

Add assertions that we actually failed over to the other
factory.

Also, with NIO, close the channel on accept exception.

Also improve debugging by including a log of new connections
including the id.