From a bug report: hangup during
screen updating at tail end of successful restore didn't create a new
save file when disconnecting. Use his suggestion for moving the setting
of program_state.something_worth_saving sooner, before the save file is
deleted. To do that, restlevelstate() needs to come sooner too. I think
this is safe enough to include in the branch code.
For the trunk, I'm not sure whether the SAFERHANGUP config will work
well here. It has to survive long enough under autopilot to enter moveloop
before the chance to save kicks in.