GL layer on top, DOM on bottom.
GL layer maintains a cutout state for each DOM object.
If a GL object occludes a DOM object, it does so via revoking the DOM object's cutout.
This is how Mixed Mode did it, and the only way I see to accomplish it. The hard part is getting cutouts that go beyond simple rectangular boxes (something Mixed Mode didn't do).