Better handling of the event queue so that we avoid extraneous timeouts when draining events

pending test for ported `consume` method