EventLoopContext.run() should be callable from multiple threads simultaneously
EventLoopContext should be capable of detecting if it is running on multiple Threads and perform its own synchronization. We should consider creating a single-threaded version that lacks this synchronization but performs faster for short events.