I don’t know that there is a universal “best approach” in this regard. Is best the simplest? The best performant? The quickest to write? The least memory-intensive?
The simplest solutions I can imagine is either using a boolean in the Context to know whether the AI should be ‘waiting’ for response or not, or alternatively to disable/pause the AI component altogether while waiting for the response, then enable/resume again upon receiving the result.