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

Did you note my previous comment about this while loop ?

void Sensor()
{
  if (digitalRead(pirPin) == HIGH)
  {
    while (millis() < time_now + period * 60000)
    {

Before calling the Sensor function period is set to 10 and time_now is set to millis() so the code will not exit the while loop until 600000 milliseconds has elapsed once pirPin goes HIGH. Is that what you intend to happen ?