And ultimately, I want to achieve Wayland support, which I don't think is possible in expect either.
Undroidwish [0] is a Tcl/Tk binary that apparently has experimental support for Wayland (through SDL). It's a spin-off from Androwish [1], but more for desktop/embedded systems.
You might have something there, as Expect is supported for Androwish already.