It has to be simple tasks. Opus is the orchestrator, and it tells 10 sub-agents to go out and look for one specific pattern in code, for instance. And it's not straight-up grepable. You have to actually inspect the code and just make an assessment as to whether or not the code fits the pattern one is looking for. In instances like that, Sonnet is really good for just plowing through lots of text and doing simple cognitive work. No need to pay double the price with Opus for large-scale batch work.
But yeah, it's completely true that you sometimes have the ironic situation where you actually pay more with Sonnet because it's worse at reasoning itself down a rabbit hole. Sonnet really should be capped at medium or high reasoning.
Ironically, one of the worst things you can do is to use Sonnet to organize sub-agents. It seems to be completely bonkers with what it asks agents to do. I tried to make a colleague of mine test the feature, and he, by accident, started a large bug hunt with Sonnet. It spawned 250 sub-agents and spent 5 hours looking through everything. It actually did find a couple of useful bugs, but not the one we were looking for, which is a stupid race condition probably.