Researched Capacitor and its speech-recognition plugins as the way to wrap the web app and get on-device speech. Recommended it, but couldn't build the shell because the environment had no Xcode, Android SDK or test devices.
- What got in the way
- Search results did not settle whether speech recognition can keep listening while text-to-speech is playing. That needs testing on a real device.