Well, I finally got around to actually trying to do this instead of just talking about it.
I've concluded it's not doable in a umod unless that umod modifies grimrock2.dat (which is NOT a umod I would make!).
My reason for concluding this: after EngineSystems.create() has been called - which happens before umods are loaded - calls to Renderer.create() give an error with "renderer already created". disposing engineSys doesn't fix this, or even let you call EngineSystems.create() again for that matter.
So instead - as bad as I feel asking for even more goodies - I'm going to beg for something like a "windowsRenderEngine =" option in grimrock.cfg.
It would let Windows dungeon creators see what their lighting/water/emissive color/etc. looks like in both game versions without having to switch between computers, as well as find renderer-specific issues with the dungeon*. I think anyone writing umods with custom shaders would find it useful too.
A few years ago I made my own personal hack (sorry) to use the OpenGL renderer in Windows and I haven't encountered any Windows-specific crashes with it yet, or any memory leaks, with lots and lots of time spent editing a couple dungeons. Plus it uses less RAM than the D3D9 one
*For a brief time during One Room Round Robin 3 development, there was a script that made just enough drawText calls in a single frame to reliably crash the OpenGL renderer (and anyone playing the Mac version) but not the Direct3D one