Controlar tiempos de encendido y apagado de servos con la funcion millis

Buen dia, quero controlar el encendido de un servo por un minuto , realice un ciclo y luego se apague durante dos minutos pero todo con la fucnion millis ya que en el codigo que adjunto hay un DELAY para el tiempo entre pasos.
El problema que tengo es que siempre se ejecuta el ciclo de encendido, pero el de apagado no.

Gracias de antemano.

#include <Servo.h>

Servo myservo; 
int pos = 0;
int tiempo =40; 
int pasos = 5;
long previousMillis = 0;
int led=13;
#define ROTAR_HUEVOS_ON 60000 //  dura encendido 1 minuto realizando un ciclo 
#define ROTAR_HUEVOS_OFF 120000 //  dura 2 minutos apagado


void setup()
{
  myservo.attach(9);  
  pinMode(led,OUTPUT); 
}

void loop() {

unsigned long currentMillis = millis();

if(currentMillis - previousMillis > ROTAR_HUEVOS_ON){
  previousMillis = currentMillis;
 
 digitalWrite(led, HIGH);
  for(pos = 2; pos < 170; pos  ++ )   
  {                                 
    myservo.write(pos);               
         delay(tiempo);                  
  }
  for(pos = 170; pos>=2; pos-=1)     
  {                               
    myservo.write(pos);             
        delay(tiempo); 
  if(currentMillis - previousMillis > ROTAR_HUEVOS_OFF){
  previousMillis = currentMillis;

 
                               
    myservo.write(pos);  
  
}                    
  }

}



}