Create a single large list before starting scheduling instead of dynamically building a priority list while scheduling every control step.

 It sorts all operations using the ALAP labels in ascending order as the primary key and the ASAP labels in descending order as the secondary key. This sorted list is maintained as the priority list.

 Operation with the highest priority is scheduled first (subject to the available constraints and operator dependency. And so on.