Для автосохранения у меня просто будет фоновый поток, который будет запускать ваш метод Save () без вывода сообщений (без всплывающих окон) во временную папку (системная папка AppData). Вероятно, вам следует хранить отдельный файл для каждого сеанса, чтобы вы всегда могли предложить вернуться к предыдущему аварийному сеансу. При обычном выходе вы должны удалить файл, чтобы указать, что сессия успешно завершена.
Я бы даже сохранил 2 файла для каждой сессии, поочередно сохраняя для каждого, чтобы в случае сбоя во время автосохранения он не повредил предыдущее автосохранение.