The difficulty, as I see it, is that without the application's cooperation it's hard to tell when the thing is "loaded". For instance, FireFox starts pretty quick -- if you just watch for the .exe to appear in task manager. But then it spends many seconds loading add-ins, initializing the renderer, detecting proxy, etc. By the time it's ready to use, the Windows executive has long forgotten about it.
Trying to out-clever an app and detect things like "window is visible" or "CPU usage near zero" are mostly doomed to fail, since most modern programs are multi-threaded with display functions separated from the core functionality.
I'm sure it's possible to write such a utility (and I'd surely like to have one too) but it'd be a complex undertaking.
Unless I'm missing something simple like the DetectApplicationReady Windows API?