Fix lost websocket read by releasing processing before re-arm
With EPOLLONESHOT, re-arming the fd while still holding processing loses a read
that arrives in the window between the re-arm and the release: the event loop
sees the connection as busy and the one-shot arming is consumed, so the read is
dropped and the connection hangs / leaks (CLOSE_WAIT). Release processing before
re-arming instead; no extra state needed.