There has been some great work, I believe done cooperatively by Stanford and U.C. Berkeley, about how to deal with this. Do a web search for "crash-only systems". What you have to do is be able to quickly recover from such failures, getting you back to the same state you were in, or at least that latest state that you decided to checkpoint.
forgot to mention that one of the features I like most of CLISP is that its EXT:SAVEINITMEM will save a snapshot or an image without quiting the current image. http://www.gnu.org/software/clisp/impnotes/image.html
So you can snapshot on regular timing or on a trigger in the application (and then maybe ask rsyslog (on linux) to take care of archiving the snapshots.)
Ala'a Mohammad