Haha, yes, well it depends on how general purpose you want to be vs. hard-coding your use case.
Simplest would be something like this, just to save a series of segmentations you could browse through later if needed.
You may also find the Export to file by pressing Ctrl+Shift+S keyexample in the script repository useful. It allows you to export the segmentation to a file on a keypress combination. You can modify it to save the segmentation node instead of a labelmap node, generate a new filename automatically (so that you don’t overwrite previous saves), etc.
Were you able to make Slicer crash? If yes, then we want to know more about it (what operating system, how much memory you used, how big your data was, what operations caused trouble, etc.). We rather keep the software so robust that users don’t need to resort to autosave. If you find that sometimes you run out of memory then you can increase the swap/virtual memory size in your system settings (Windows/Linux) or make more disk space available (macOS).
If you just want to keep more undo states than the default then you can set it to a higher value by typing this into the Python console: slicer.util.getModuleWidget('SegmentEditor').editor.maximumNumberOfUndoStates=15 (it changes the number of undo states from the default 10 to 15). Just make sure you have enough memory to store the increased number of undo states.