Я думаю, что ничего не потеряется, если брать данные из события, а не из хранилища.
Чтобы не выполнять ненужные операции по несколько тысяч раз в секунду можно воспользоваться троттлингом.
В любом случае, проверить происходит ли потеря данных не так сложно.
Первая вкладка:
var buffer = [];
addEventListener('storage', function (e) {
buffer.push(e);
});
Вторая вкладка:
for (let i = 0; i < 100; i++) {
setTimeout(i => {
localStorage.setItem('test', `loop: ${i}`);
}, 10, i);
}
После запуска кода во второй вкладке просто обратитесь к переменной buffer в первой вкладке и посмотрите сколько событий было записано в массив.