Reverted to gs-collections 5.1 instead of jsr166e ConcurrentHashMapV8 to avoid any thread contention issues. Modified the logic used to allocate a recursive task to use UnifiedMap's getIfAbsentPut which seems, according to the test added to address the issue, not result in multiple notifications as was the case previously. More testing is needed to determine if this will work in all cases without any synchronization and if this fixes a potential slight decrease in throughput for multi-threaded Dispatchers.