Thanks for the quick reply!
So I'd duplicate the Font Material for my dynamic font, but instead of using GUI/Text Shader, I'd write my own that has Transparent+1?
Also I experimented, making each UI element have its own UIPanel. I figured I could sacrifice draw calls for simplicity, but each of my elements seems to draw over the other in a seemingly random order, nothing to with Z position.
It seems my understanding of the draw order isn't quite right.
Depth changes drawing order of things with the same material/atlas, within the same UIPanel for an orthographic camera.
Z position sets drawing order for things with different materials/atlases, within the same UIPanel for an orthographic camera.
But then for different UIPanels, perspective cameras...? It seems all bets are off. It'd be nice if this was summarised somewhere in a table...
Edit: It seems I can hack it to draw in the right order by placing extra UISprite elements off-screen, far enough away in the Z order to force things using a certain atlas to draw first. Worst hack of the century but it seems to get the job done for now.