Podrias programar la interrupcion del TIMER0, para encender y apagar 1 vez cada 0.25 segundos el led, para conseguir los 0.25 segundos exactos, usa esta formula:
Temporizacion=4 * Tosc *(256 - valor inicial del Timer)*Divisor de Frecuencia
y dentro de la misma rutina de interrupcion incrementas un contador, que en el momento de llegar a 120 realice un sleep, para finalizar a los 30 segundos.
Y en cuanto a lo de ser controlado por la interrupcion externa INT0, a q te refieres exactamente? Que realice el encendido y apagado del led durante 30 segundos, cada vez que recibe un valor en alta o en baja por el INT0?