Hola Héctor, No hay ningún problema en usar la función millis() en una interrupción, el problema que te sonará es que en la ISR el conteo de tiempo está suspendido, por lo que delay siempre te va a dar el mismo valor.