[task] support ignoreResult, [app] moved task handling to `Worker`