Some of it is intrinsic and the structural fix is the big win: change the size of the block, not the quality of the switch.
If a switch costs thirty minutes, then three switches a day cost ninety minutes regardless of how good you get at switching. But three switches a week cost the same thirty minutes each and you pay it three times instead of fifteen. The cost is per switch, so the lever is the number of switches, not the price of one.
What that looks like in practice:
A day per project where you can get it. Monday and Thursday on one, Tuesday on another, and so on. The cost drops by most of itself immediately.
Half days if a full day is impossible. Still a large improvement over three switches.
Never more than two switches a day. This is the line worth defending even when everything else slips.
The objection is always that people are waiting and cannot wait a day. Usually much less true than it feels: most of what feels urgent is a message that needs a two-minute reply rather than a context switch into the project. Answering a question about a project is not the same as working on it, and conflating those two is what produces a day of five switches.
So: keep a short window for replies across everything, and defend the blocks for actual work.