docs: public <T> Future<T> addTask(String title,
                                   long total,
                                   ProgressHandler<T> handler) {
          ProgressAsyncHandler<T> async = (result, progress) -> {
              try {
                  result.complete(handler.handle(progress));
              } catch (Exception e) {
                  if (!result.isCancelled()) {
                      result.completeExceptionally(e);
                  }
              }
          };
          return addTask(title, total, async);
      }