I finally understand what you have.
You have an application written in C# that you are using with a DIO device. You already have an output to work with. I guess that the output monitors the running application (based on your software) and outputs a square wave as long as the application is running. If the app hangs or stops responding the output stops but can stop in either a logic high or logic low.
Now if that is correct and you have your signal out, I don't understand why you can't just use one of the missing pulse detectors mentioned earlier? The missing pulse detector would look for a pulse train coming in and in the absence of a pulse train would output. This could likely be done with a re triggerable one shot as mentioned then driving a delay circuit. Pulse train stops the one shot outputs and starts a delay, following a delay you trigger an alarm.
Personally since your app is written in C# to communicate with your DIO I would have included a few lines of code in the app to provide an output if the app stops running. For example if the app is running you output a logic low on one reserved DIO line, if the app hangs you go to a logic high on the DIO line (channel). The module within your app would query the Windows WMI service to see if the rest of the app was running.
I am not a programmer, far from it but I have written a few little DAQ routines including a few that monitor if a program is running or stopped. I have only worked a little in VB but would guess a simple module could also be done in C# including a screen message that would pop up. Anyway, given a choice I likely would have done it that way.
Just My Take
Ron