Open-AT is Event-Driven - so, in most cases, it doesn’t need to “yield”.
This lends itself to a State Machine approach - trying to write “linear” code is not appropriate.
See: Good paper on Event-Driven Programming
Indeed. Or, at least, SiWi’s explanation of them leaves us none the wiser as to how to use them effectively.