Hi Phil,
Yes totally agree, HTML is much easier to iterate and style with CSS than with native canvas. As an aside, I've done UIs in both HTML and Canvas for games. Sometimes it depends on the effect you want, canvas can do some things easier than HTML but you sacrifice all the innovation and power of HTML.
For the question at hand, have you tried setting the engine pointer scope to canvas? I think that should work
var engine = new ex.Engine({
canvasElementId: 'game',
width: 600,
height: 400,
pointerScope: ex.Input.PointerScope.Canvas
});
I have a pen that I think reproduces the scenario you're describing, let me know if I'm off.
https://codepen.io/anon/pen/qxWYgg?editors=1010#0Cheers,
Erik
P.S. We would be really interested in seeing what you have built and maybe chatting online sometime. Let us know if you'd be up for either.