FIFO Queuing is imperative.
An up-and-coming product has demonstrated that there
may be a need for queueing that is not strictly FIFO,
but a product without strict FIFO is a problem.
I suggest at least a few options.....
1) Dequeue by arrival time (strict FIFO) regardless of event type
2) Dequeue according to event type/priority