Help in finding better way to restructure the code

In reply to ben@SystemVerilog.us:

Hi Ben,
I do not see how this implements the priority as the events are only triggered but there is no wait condition on them. Is there anything I am missing?