A documentação oficial diz o seguinte sobre persistência de alarmes:
Os alarmes geralmente persistem até que uma extensão seja atualizada. No entanto, isso não é garantido, e os alarmes podem ser limpos quando o navegador é reiniciado. Consequentemente, considere definir um valor no armazenamento quando um alarme é criado e, em seguida, garanta que ele exista sempre que seu service worker for iniciado.
O que eu acho que está faltando é uma maneira de garantir que o trabalhador realmente inicie caso os alarmes sejam apagados. Existe um evento recomendado para o qual o trabalhador deve se registrar (além do evento de alarme) para garantir que ele seja iniciado para recriar o alarme?