Sciter then (
https://sciter.com):
- multiple platforms...
Yes: Windows (x32,x64, ARM64), from XP to 10, MacOS, Linux/GTK, IoT and mobiles.
- multiple windows -
Yes. Multiple desktop windows and you can even render separate DOM elements in popup windows.
- rendering to a window that isn't owned by the UI being rendered
Yes, you can render it on top DirectX, OpenGL, Vulkan (coming) or in child window/nsview/gtkwidget. There is also Sciter.Lite that allows to render UI without any DWM - on frame buffer / video memory directly. Check : https://sciter.com/sciter-and-directx/
- don't need to bring up electron.
Not Electron. All this in monolithic dll/so (5..9mb) that even can be linked in statically.
- consistent rendering across multiple platforms.
Check screenshots of https://notes.sciter.com/ , are they consistent enough?
- ... for React
React (Reactor in Sciter terms) is implemented natively. JSX (SSX in Sciter) is a part of language/runtime - no need for additional compilers, etc.
- I'd love to abandon my C/C++ ...
No need to. You can still manage (update, handle events) UI directly from C++ if needed. You can even create custom native DOM elements that can even draw themselves by native code.