On the off chance that something invokes `waitForOnline` during
`checking` or `offline` (e.g. on a `GUILD_CREATE` event from discord),
the state might have changed in between we send a ping and receive it.
This commit adds guards to not act on such a stale ping result.
During a "check assume offline" at startup, `isRealTime()` is false,
so incoming Discord events get queued, but `queuePacket()` asserted that we
were offline or recovering. The updated assertion implicitly adds `checking`
to the list of valid states, allowing packets to be queued in this state.