We slurp events as fast as possible, while bounding the number of processing threads. This can lead to a memory leak (in case we can't process fast enough), or possibly event data loss (if we crash with events in the TQueue), though maybe the latter is acceptable.
TODO
- bound work in
pushEvents not consumeEvents
- log when or before we block
Possible relation to #3388