¡Necesito ayuda con un pulsador! (RESUELTO)

¡Hey! Muchas gracias me has dado una idea de como arreglarlo

#include <Servo.h>

int buttonPin =2;

Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;
Servo servo5;

int pos1=90;
int buttonState = 0;
boolean state;

void setup(){
  Serial.begin(9600);
  servo1.attach(3);
  servo2.attach(5);
  servo3.attach(6);
  servo4.attach(9);
  servo5.attach(10);
  servo1.write(pos1);
  servo2.write(pos1);
  servo3.write(pos1);
  servo4.write(pos1);
  servo5.write(pos1);
  pinMode(buttonPin, INPUT);
}

void loop(){
  buttonState = digitalRead(buttonPin);
  delay(200);
  if (buttonState == HIGH ){
    state = !state;
  }
  Serial.print(buttonState);
  Serial.println(state);

  if (state==true){
  servo2.write(0);    //contracción cascada
  delay(250);
  servo4.write(0);
  delay(250);
  servo5.write(0);
  delay(250);
  servo3.write(135);
  delay(250);
  servo1.write(135);
  delay(2000);
  servo2.write(165);    
  delay(250);
  servo4.write(165);
  delay(250);
  servo5.write(165);
  delay(250);
  servo3.write(0);
  delay(250);
  servo1.write(0);
  }
  else{
  servo2.write(155);//posición normal
  servo4.write(155);
  servo5.write(155);
  servo3.write(0);
  servo1.write(0);
  }
}

el problema ahora es que al presionar el botón se inicia el loop de //contracción cascada pero vuelve y vuelve a iniciar de manera que no me deja volver a presionar el botón para que suceda el "else //posición normal"
¿como puedo hacer para que se detenga?