finish event dispatch implementation

wait for time-out or queue signal from main thread

walk through event queue:
- ignore events too far in the past
- collect for dispatch events within "now" time window
- hold future events
- dispatch collected "now" events in separate thread