status flips to 'listening' only after handle.start() resolves, so the synchronous assertion right after waitFor(start x2) raced (2/9 flakes on 'speaks completed fallback sentences before the response finishes'). Wrap it in waitFor; same assertion, no longer timing-dependent.