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

Yes i do intend it to not exit for the 600,000 ms but i do not know any other way "language based" to run this code for that period of time. Do you know of a way to incorporate the millis() for a extended timeframe without being contained in the while loop?

I guess i need to rethink this portion. I will read up on state machine approaches. Do you have any links where i can read up on this type of coding?

Thank again