docs: public Observable<Indexable> invokeTaskAsync(boolean ignoreCachedResult, final TaskGroup.InvocationContext context) {
          if (hasFaultedDescentDependencyTasks) {
              return Observable.error(new ErroredDependencyTaskException());
          }
          final TaskT taskItem = this.taskItem();
          if (!ignoreCachedResult && hasCachedResult()) {
              return Observable.just(taskItem.result());
          }
          if (taskItem.isHot()) {
              // Convert hot task to cold to delay it's execution until subscription.
              return Observable.defer(new Func0<Observable<Indexable>>() {
                  @Override
                  public Observable<Indexable> call() {
                      return taskItem.invokeAsync(context);
                  }
              });
          } else {
              return taskItem.invokeAsync(context);
          }
      }