Prevents repeated complete checks during scheduling by only scheduling each task at most once
Improves error message for unfulfilled tasks
Reschedules unfulfilled dependencies