Also erstmal: Du kannst nicht herausfinden ob ein Prozess nur lange braucht oder sich aufgehangen hat.
Was du aber machen kannst, ist ein Protokoll definieren (mit Timeouts, usw.) und wenn sich der Prozess nicht entsprechend diesem Protokoll verhält, gilt er als aufgehangen. Bevor du also prüfen kannst, ob ein Prozess "gesund" ist, musst du erstmal festlegen, was ein "gesunder" Prozess ist. Das kann dir niemand wirklich abnehmen.
Ich befürchte das weiß oft Windows selbst nicht so recht, denn auch Programme, die im Taskmanager als "Anwendung reagiert nicht" stehen, leben oft doch noch. Das sind Anwendungen, die an einer Stelle beschäftigt sind, an der z.B. kein Processmessages eine Reaktion zulässt.
Das wäre eine Beispiel für so ein Protokoll. Der Taskmanager verwendet vermutlich
IsHungAppWindow [
StackOverflow].
Je nach Anwendung könntest du z.B. auch prüfen, ob es mindestens ein sichtbares Fenster gibt.