code: <T, U> Stage<U> doEventuallyCollect(
        final Collection<? extends Callable<? extends Stage<? extends T>>> tasks,
        final Consumer<? super T> consumer, Supplier<? extends U> supplier, int parallelism
    ) {
      final ExecutorService executor = executor();
      final Completable<U> stage = completable();
      executor.execute(
          new DelayedCollectCoordinator<>(caller, tasks, consumer, supplier, stage, parallelism));
      return stage;
    }
docs: Perform an eventual collection.
  
  @param tasks tasks to invoke for stages
  @param consumer consumer to apply
  @param supplier supplier to provide result
  @param parallelism number of tasks to run in parallel
  @param <T> source type
  @param <U> target type
  @return a completable