This class was initially the only access point to run these async processes. Then the 'manager' component was introduced as a way of keeping tabs on some of them, specially when it's useful for other components to know whether a specific task has been started. I'd like to keep the API decoupled, so if we ever decide that there is a particular task that should run outside the manager, we still can. I can add a comment to warn about using it directly, and point readers to the manager component though.