Interestingly enough, it looks like there’s some back room communication between Flite and Pocketsphinx when Flite is speaking as the suspend call isn’t coming from the ViewController.
That’s normal – a feature of OpenEars is that it does smart management of suspend/resume during speech that it creates, depending on the audio route. It is expected that it will do its own suspend/resume call before and after flite speech if there is the possibility that the audio route includes a speaker that emits sound into the open air where it can be picked up by the recognition engine. Otherwise TTS would usually result in the TTS being analyzed by the recognition engine. Manual suspend/resume is for you to avoid recognizing outgoing sound that your app creates and OpenEars handles it for outgoing sound that it is responsible for.
What is an example of your speech that it can recognize when Flite speech is on and the first recognition works?