You can monitor anything you want using
monit - it's very flexible. Depending upon what and how you want to monitor it, you'll have to dig into how the configuration works.
You first have to define what it means for your process to be "unresponsive."
The "SERVICE TESTS" section of Monit
man page lists all the things that Monit can do to determine if something is running or not.
If you are particularly brave you could replace
monit - but you probably have a lot of work ahead of you and the payoff is likely not going to be worth it.
You may also want to look into
upstart as it's a "drop-in" (from what I hear) replacement for
init that's designed to do things like this (but I don't know very much about it)