In some cases blender could freeze. The reason we want to address with this patch is where the task scheduler performs tasks in the same worker thread that aren't compatible.
For task pools every task is isolated. When using range task the developer can determine if the tasks all together is isolated, or that no isolation is needed. This can be configured with TaskParallelSettings.use_isolation. The implementation is limited as isolatino in TBB uses functors which are tricky to add to a C API. We decided to start with a simple and understandable implementation and adapt were we need to.
During testing we came to this setup as it was reliable (we weren't able to let it freeze or crash) and didn't had noticeable performance impact.