THIS IS A MAJOR ISSUE; I've seen it dozens of times today occurring during an event write and the concurrent send/write from another thread.
Write interest is not concurrent and full of issues relating to the synchronization between the backlog queue and the atomic flag write interest. It is possible to check for a queue to be not full, and add to the queue whereas the queue is emptied and write interest is disabled before the additional item is added to the queue.
What happens is 2-3 atomic operations occur and cannot/do not check to see whether the state changed between the time of assertion and subsequent action.
The scheduledFlush queue also suffers from the same concurrency problem. Events may be added to the queue after the scheduledFlush operation has removed it from the scheduledFlush queue and after queue is empited causing items to be added to the backlog but not trigger the scheduledFlush queue or interest.