Mover dos servomotores uno después del otro

Buena tarde Amigos, solicitando por favor su ayuda, estoy realizando un proyecto que se me complicó y yo creo que será sencillo para Uds jeje... necesito mover dos servos con un botón, cuando pulse el botón: servo1 gire a 45 grados y cuando este en esa posición, servo2 gire a 60 grados... y cuando vuelva a pulsar el botón el servo2 regrese a 0 y luego servo1 también regrese a 0 unos segundos después.

He logrado mover los servos con un botón pero los dos servos se mueven al mismo tiempo. Cuando agregó delay ya no anda el programa... se pierde el funcionamiento del botón. Gracias por su ayuda

El código que uso:

#include <Servo.h>
Servo servo1;
Servo servo2;
int estado = 0;
int estadoAnterior =0;
int salida = 0;

void setup() {
servo1.attach(3);
servo2.attach(4);
pinMode(8, INPUT);

Serial.begin(9600);

void loop(){
estado = digitalRead( 8 ) ;

if ((estado == HIGH) && (estadoAnterior == LOW)) {
salida = 1 - salida;
delay(20);
}

estadoAnterior = estado;

if (salida == 1){
servo1.write(45);
servo2.write(60);

}
else {
servo1.write(0);
servo2.write(0);
}

}