Using Millis() and a while if statement is creating a delay to read other callfn

void Sensor()   {
  if (digitalRead(pirPin) == HIGH) {
    while (millis() < time_now + period * 60000) {
      if (millis() > time_now5 + period * 60000) {
        counter = counter + 1;
        Serial.println("The number of events : ");
        Serial.println(counter);
        time_now5 = millis();
      }
      digitalWrite(ledPin, LOW);   //the led visualizes the sensors output pin state
      if (millis() > time_now2 + 10000) {
        Serial.print("motion detected HOLD ");
        Serial.print(millis() / 1000);
        Serial.println(" sec");
        delay(50);
        time_now2 = millis();
      }
      takeLowTime = true;
      if (lockLow) {                //makes sure we wait for a transition to LOW before any further output is made:
        lockLow = false;
        if (millis() > time_now3 + 1000) {
          Serial.println("---");
          Serial.print("motion detected at ");
          Serial.print(millis() / 1000);
          Serial.println(" sec");
          delay(50);
          time_now3 = millis();
        }
      }
    }
  }


  if (digitalRead(pirPin) == LOW) {
    digitalWrite(ledPin, HIGH);  //the led visualizes the sensors output pin state

    if (takeLowTime) {
      lowIn = millis();          //save the time of the transition from high to LOW
      takeLowTime = false;       //make sure this is only done at the start of a LOW phase
    }
    //if the sensor is low for more than the given pause,
    //we assume that no more motion is going to happen
    if (!lockLow && millis() - lowIn > pause) {
      //makes sure this block of code is only executed again after
      //a new motion sequence has been detected
      lockLow = true;
      if (millis() > time_now2 + 1000) {
        Serial.println("---");
        Serial.print("motion ended at ");      //output
        Serial.print((millis() - pause) / 1000);
        Serial.println(" sec");
        delay(50);
        time_now2 = millis();
      }
    }
  }
}

This function is doing a lot; maybe more than a single function ought to. You should look into introducing a State Machine approach to managing the Sensor.