ISR e Delay()

Bom, você deve-se lembrar de duas coisas:
1: As funções "delay" e "micros" (e análogos) no arduíno se utilizam de timers e suas rotinas trabalham com interrupção. Logo deve-se observar se não há conflitos nos timers utilizados.
2: Não há como utilizar uma interrupção dentro de outra interrupção (pelo menos de mesma prioridade), logo mesmo utilizando timers diferentes o código pode não funcionar, pois podem ter a mesma prioridade ou a sua ISR ter maior prioridade.

Se fizer sua própria função "delay_t" utilizando um timer como contador, entretanto sem utilizar interrupção (comparando o valor do registrador via software), as duas condições acima serão atendidas e não vejo porque não funcionar.

Nota: Interrupção é bom para algo crítico ao sistema (projeto) dependente de tempo ou de ação; contagem precisa de tempo ou botão de alerta. É bom aprender a manusear para se ter o conhecimento mas não deve-se fugir das soluções mais simples para fazer um projeto. (já fiz e faço muito este erro)