I am looking for advice on the best/most efficient way to set up a sequence of led flashing events without the use of a microprocessor. The start of the sequence will be initiated by an optical sensor detecting a switch on position. The sensor output will remain high in the on position and low in the off position.

Once triggered the single led will turn on steady for 1 minute and then begin flashing at 1 flash per second for 1 minute (on 1 sec/off 1 sec). At the end of that minute it will start flashing at a rate of 1 flash per 250ms (on 250ms/off 250ms) and remain in this state until the switch is moved to the off position. So the led conditions are:

Off
Steady On
1 Sec Flash
¼ Sec Flash
Off

I am thinking I can do this with a couple of 556 timers but am not sure how to trigger the sequences. Any advice would be greatly appreciated or perhaps 555's are not the best route to take. Again I would appreciate any advice. Thanks to all.