>As you can tell, the snag is that the batch process, buried in an app, is important so it can't be missed _unless_ we can tell the user afterwards 'Hey, this didn't run today'. Maybe the user can inadvertently find some state of the app which stops the batch or prevents any processes at all running while he is at lunch. Its entirely possible and impossible to prevent by design.
DIck
The client ON ERROR could set a flag, that would be evaluated after the BATCH completes, and then inform (the user) and execute it.
Imagination is more important than knowledge