OK. Tiene muy buena pinta.
A ver, es relativamente sencillo: tienes que crear tres variables, por ejemplo:
pasoPorCero
tiempoTriac1
tiempoTriac2
cuando pasas por cero, en la rutina de la interrupción, cargas millis() en pasoPorCero.
Y después, en el loop, comparas con millis() los tiempoTriac y, si ha pasado el tiempo, le mandas el pulso al triac y listo. (Si el pulso tiene que tener una cierta duración mayor que la que el propio microcontrolador deje entre las instrucciones digitalWrite .... HIGH y digitalWrite .... LOW, tendrías que usar otra variable para la duración del pulso "deltaPulso")
Saludos
(No me detengo en la sintaxsis porque tengo una memoria pésima y metería la pata seguro ...)