Has this just changed the semantics? Will this return async, while the task executes in the background? If so, then looks wrong. If not, then code is hard to follow.