En cuanto a lo de los segundos, entiendo por dónde vas, Tato84. Supongo que quieres descartar que si haces un reset justo nada más grabar, que al volver del reset no vuelva a grabar de nuevo, no?
Prueba tal y como tenía el primer código, pero declarando la variable bool salvado como true. Eso hará que si al iniciar/resetear está en "minuto cero" (aunque hayan pasado más de tres segundos), no grabe hasta el siguiente minuto cero. No sé si eso te interesaría o prefieres lo de los tres segundos.