Long-running task design