Optim: ensure UniTask.TaskPool reliably caches items
- copied from repo at 88737fb5
Original version was written in wait-free fashion which permitted only 1 participant while failing others. Rewritten to be lock-free, which allows to guarantee pooling
Tests: ran unit and perf tests. stuck breakpoints to confirm that repeated perf test invocation didn't have allocations. ran around craggy with jobs 3