Изучив документацию для localStorage, я думаю, что вам нужно хранить соответствующие данные по мере их создания / изменения, а не ждать закрытия события. Я понимаю, что это, вероятно, больше работы, чем хотелось бы любому из нас, но, по крайней мере, вы можете быть уверены, что сохраняете текущее состояние в каждой точке, чтобы даже сбой браузера не убивал ваше состояние.