To be honest, any app that takes more than a couple of seconds (ten at the maximum) to create it's window has severe problems and wouldn't survive on my computer as a matter of course: if it doesn't create a window, then the user doesn't know it is running, and is likely to double click it again, and again, and again...
But if you really, really have to use it, then your only solution is going to be to use the
EnumWindows function[
^] to get the existing windows list repeatedly until the one you want appears in the list: you can probably ID it from teh window title text, depending on what the app does, or possibly compare it to the handle you already have?