I tried calling `_onDisconnect()` in the timeout case, but it doesn't fix it.