as we ask agents to do more work for longer, async subagents become a very important primitive
async subagents enable
- continuous human interaction w/ the main orchestrator, since it's not blocked by subagent work
- efficient distribution of work across the background workers