Thanks for your post!
I was thinking about this too. Have been playing a bit with the HTML Element addon, and quicky found some bugs there. I don't think it's ready for production.
First, of all, I'm not speaking about the backend side. I'm mostly concerned about the best frontend approach possible. Given amazing tools like React and Preact, I would prefer to generate my non-canvas related UI code with these tools, have some messaging feature between the DOM and canvas / plugins, and run the (strictly speaking) game with Construct.
Now, I looking into the Inject CSS plugin a bit more, as I've found it pretty reliable. Currently, I plan to use Inject CSS to
1. create a div that I can use as the main container for UI elements
2. attach an ID to the canvas created by Construct
3. at start hide the canvas using css, loaded by Inject CSS
This way I can provide the non-game UI inside Construct, but without Construct.
Until now, this is only a plan. I'll see how it works out in the next few weeks. My major concerns are UI elements that I might want to position on top of the canvas during gameplay. To position these elements, I'll need the canvas offset and size, and start playing with absolute positioning of the HTML elements. Will see how it works out!