I think it's possible for the socket to be not ready but also not yet reconnecting. Sockets have a `closing` state, but I don't think the `close` event (which sets `_connectionPromise`) is fired until the socket gets to the `closed` state. That *may* not be possible in practice, but it wasn't clear that it could be ruled out.