197144dcda
When a /sync request fails, we spin up a keep-alive poll to /_matrix/client/r0 which 400s. We treat any HTTP response code as a success for the purposes of polling the server. When a successful poll is done, we shoot the current /sync request in the head immediately (via a hacky abort() on the promise) and retry the /sync.