We're using TinyGo and the Wazero runtime for our WASM plugin system in ServiceRadar, highly recommend both if you're using golang.
Writing embedded code with an async-aware programming language is wonderful (see Rust's embassy), but wonder how competitive this is when you need to push large quantities of data through a micro controller, I presume this is not suitable for real-time stuff?
Tinygo made a lot of progress over the years -- e.g. they've recently introduced macOS support!
It does indeed produce much smaller binaries, including for macOS.