Using a LIFO stack for events was a dumb idea in the first place, this
should've been a FIFO queue from the beginning.
This allows the system to respond to events in the same order that they
are generated, instead of always responding to the newest event first.