Parallel library should process all futures even if one of them throws an exception
Consider the case where we spawn 1000 future requests and the very 1st thread throws an exception.
Since the exception handling is outside the for loop we would end up returning a result with all nulls to the caller.
In getStagesInProgress() as a fall back we check the ParallelLoopResult and get all the missing results sequentially, so this could lead to the main thread and the spawned threads will process same requests in parallel and could lead to issues.