Further attempts to simulate the Reactor Pattern

The reactor loop works and accepts events, but is too tight to allow other
code to run. Specifically, Timer delayed code never executes, making it
impossible to get a good feel for asynchronous capability.