As far as I know there is no such thing as 2 OpenGL contexts sharing a backbuffer in real OpenGL. Every OpenGL context has its own backbuffer, even if it's offscreen or 1x1 pixel. So you can't render to the same backbuffer with 2 contexts since the backbuffers are not shared. You can render to the same framebuffer object though.

WebGL is effectively simulating OpenGL so I wouldn't expect to be able to get 2 context to the same canvas.