I fear there is no really quick answer…
Is a Running Application Frozen
(Especially post 4 and post 10.)
PS:
I don’t think it can be done with KeepAlive. And I don’t know if launchd has some built-in methods to determine process states. But if one of the methods from the above linked thread work for you (especially Peter’s suggestions with Apple Events), you could script this (with a kill command if the test is positive) and run the script periodically via launchd. The KeepAlive job would then restart the process automotically.