Get the next event of the timeline according to the ordering. Ordering is
performed in this method. Basically there are n ordered stream of events
with possible dependenencies caused by send/rcv relation.
Sends are always eligible to be scheduled. Receives are eligible only if
their matching send was already issued. In situation when current events of
all streams are blocked (should not happen!) the oldest one is unblocked
Out of all eligible events, the smallest one (according to Event.compareTo)