After contacting Microsoft directly on this [quote TrackingID#2308290030000580 if you're contacting them for a similar problem], the advice was:
Whether using the 'if window' or 'if window contains' action, to get this functionality to reliably work you need to provide a UI element within a window, rather than the window itself. They confirmed that the window state is cached, whereas the UI elements are checked each time.
So for example, rather than checking that my 'info popup' window exists, I check whether the 'cancel' button on my 'info popup' window exists.
It doesn't seem to matter whether you use 'if window' or 'if window contains', there are some slightly different options on each that can be used (e.g. check element state, check window state).
Hopefully this helps future users and yourself @trice602 , however I'm no longer actively working on testing this functionality so while I can confirm this worked in an isolated test, I haven't been robustly using this solution in production level code.