@mplatvoet: trying to think how to do a recursive algorithm where a promise runs async, adds work to a queue to run in parallel with itself, and each of those adds work recursively, eventually they all run out, and then I wait for them all to finish. All work Throttled N at a time. Each could bump a counter when working, decrement after adding children, if counter is > 0 someome could still add more work, when 0 I just need to check results of all promises