Ensures that dependencies have at least as high priority as dependents

This recursively passes priorities down to dependents so if task A depends on task B, task B must have at least as high a priority as A. This avoids situations where extremely high priority tasks only end up running after all the low-priority tasks have finished because it depends on the one that runs last.
I saw your other comment but I'm still not sure I follow why we need this. Can you give an example? I can think of some cases but those seem to imply that there are issues elsewhere that need to be fixed too