Reconnect exceptions

Depending on the type of problem creating a connection (DNS resolution
vs timeout vs ...), EventMachine may create a connection and then report
failure via a callback, or it may throw an exception immediately.

This commit fixes our handling of the second case, during reconnects.
Initial connection may still throw.

**NB:** I've first merged the branch we've been tracking.