I cast about for a Z-machine in Rust for my Folly project a few years back, but everything was half finished and unmaintained. So I finished one of them! That code is here: folly/encrusted-heart at master · bkirwi/folly · GitHub
It doesn’t seem like exactly what you were hoping to build yourself, but it might be useful for inspiration or tests.
And I can imagine switching to a better-supported VM if one existed. (The main special feature I did need was a non-blocking I/O model, where the VM effectively pauses itself every time it needs input.)