As Block.copy() is potentially expensive, avoid copying the parent structure of tasks in TaskExecutor.