The latter two requirements could be done using logging, but it would require some work to send you email notifications when an event fails to run all the way through your code or is being held.
You might want to check out the NewRelic plugin on Heroku - it's now free for a small number of dynos, and that can alert you if the process is running at all times and notify you if it is not.