Immediate mode canvases randomly draw op top of or below other IM draw calls
I'm using Shapes to draw complex graphs and other stuff in 3D space.
I'd like to also use Shapes for conventional screen space UI and just learned about the IMCanvas experimental feature.
The basic concept seems to be just what I need, but there's some issues preventing its use.
First of all, the IMCanvas renders below my other Shapes IM draw calls. At least sometimes. It seems random.
In the screenshot below I have my graphs rendered in 3D space using immediate mode (not Canvas).
I copied the health bar etc. from the demo scene into this scene and it renders below the graphs rather than on top. This is using a Screen Space - Overlay canvas.

Edit: It appears that if it renders under, then if I deactivate the IMCanvasSample component and activate it again, it now renders over. Which makes me think it's something like the last registered IM user, which seems brittle.
A second issue which I don't know whether is related or not:
I switch between several cameras. When I deactivate one camera tagged MainCamera and at the same time activate another camera tagged MainCamera, the IMCanvas stops rendering. Once the original camera is activated again, the IMCanvas renders again. At least this is what appears to be happening. This is despite the canvas being Screen Space - Overlay as opposed to Screen Space - Camera, and so in theory should not relate to specific cameras.
To make sure it's not world objects occluding the IMCanvas objects, I tried looking at the sky and setting the camera to Don't Clear, but still there's no IMCanvas objects drawn.
See fixes/workarounds for both issues here:
https://shapes.userecho.com/communities/1/topics/688-here-are-fixesworkarounds-for-3-immediate-mode-canvas-bugs