If this already exists, please tell me - it might be I've simply not seen it.
What I'd like (need) would be some sort of history function that goes beyond undoing the last step - actual versioning.
I.e. whenever I re-open a project, make a backup of the current state, so that if I realize I've just destroyed the model instead of improving it, I can go back to the last version I know worked.
A workaround is of course simply making a copy of the project, but that only works as long as the weakest component in the process does everything right. (i.e. when the user fails, everything fails)