If the second "watcher app" has no visible windows, it can do it's thing without hanging up on some GUI creation process. If you know how, you can have the "watcher app" run as a service.
I'm no programmer and I only know a little bit about a few programing languages. I do most of my stuff in a scripting language named AutoIt. And most of my stuff has no visible windows. See this post and its videos
for more info. AutoIt (or other programming tools) can be used to send you an e-mail if things barf.
I have written stuff where the main program watches for and tries to start or re-start the "watcher app". And the "watcher app" watches for and tries to start or re-start the main program. Between the two of them - they both stay running.
I don't know what could have caused your app to not start all of the way - but as important as that app is, I would set the server's BOIS to have the computer turn on when power is restored and set it to power up the computer each day at a certain time - just in case. (assuming that the BIOS has such settings). And I would go as far as writing/running two watcher apps - each checking in a different way that the main app is running and each app keeping tabs on the other 2.
...but that is just me...