Porting HTML/CSS/JS to native apps is another big problem, which is why we ended up with Electron/WebView. The amount of RAM it gobbles up just to run simple apps is pretty horrible.
Why Rust? It's a strongly typed application language across browser and native. It also has a massive ecosystem and this allows us access to all of it.
BTW canvas is only the renderer. There's a lot of engineering that went into making the canvas not a typical "canvas UI app". We have solved accessibility, touch gestures, direct/immediate draw etc.
There's more reasons behind this if you're keen, I've written up a more comprehensive doc https://dev.to/zionsati/html-javascript-css-should-have-died...