In theory there are many advantages:
There is only one SharedState -> packaged dynamic allocation.
There is only one Future -> less std::mutexes; less std::condition_variable
All callables are pushed at the same time -> the std::mutex in the TaskManager is locked less often.
In practice i don't see much speed improvement.
A difference i see is that the "branches" are better distributed across the threads. Thus the worst case is faster. In the pathfinder the worst case is likely not important since thous are done between the turns.