AsyncSeq.tryFirst waiting for the execution to complete from the generator before checking the result of the next execution creates bottle necks
Since waiting for the next async computation in the sequence might be better off than waiting for the first-in-sequence element available now
Consider the behavior for Async.Choice in FSharp.Core and AsyncSeq.tryFirst is worthy of getting the first available async computation that could've been started by AsyncSeq.mapAsyncParallel as intended