Requests from the other side were handed to the blocking pool as soon as they were read, while notifications run in order on their own thread, so a request could be handled before an earlier didOpen. Requests now start from the same ordered queue.