This is a back-port of some changes I made to QuickSched: instead of taking the first lockable task with the largest weight, look for a task that maximally overlaps with the previously executed task.
This is done to maximize cache re-use, i.e. tasks with similar priorities operating on similar data will be scheduled closer to each other. I was already trying to do this by favouring tasks with the same super-cell as the previous task, but that was a bit of a mess. This should work much better.
Peter, can you check this both for correctness and if it doesn't cause a performance regression? I don't really expect a measurable performance gain directly, but this will have a strong effect on some caching that @alepper is currently working on.