Injecting provider instead of list

To get the highest prioritized scheduler
according to Alin's comment
UT change for provider injection
Simplification: if task is run or is meant to run, will have future

This removes the need for latch in task info, and also simplifies the
state handling