OK, another tantalizing avenue of attack here.
The LLVM wasm backend, while it isn’t fully working, and there are still changes to the wasm spec incoming, works to a relatively large degree, and Rust has it in tree now.
It would be very interesting to see what happens if we turn it on, start laying the groundwork for a wasm-unknown-emscripten
target.
Emscripten already has experimental support, documented here. Might be some useful leads there.