docs: protected Supplier<CompletableFuture<ExecutionResult>> supplyAsync(
        Supplier<CompletableFuture<ExecutionResult>> supplier, Scheduler scheduler, FailsafeFuture<Object> future) {
      return () -> {
        ExecutionResult result = preExecute();
        if (result != null)
          return CompletableFuture.completedFuture(result);
  
        return supplier.get().thenCompose(s -> postExecuteAsync(s, scheduler, future));
      };
    }