Watchdog System for Arduino GSM

after

  if ( currentMillis - lastResetAtMs > 1000 ) {  // v2
        wdt_reset(); // v2  - reset wdt every 1 second until startupPeriod expires
        lastResetAtMs += 1000 ; // v2

could we do that again before it starts the while loop again?

I think the problem is everytime we start at the top of the While loop the GSM module reinitialises so if we could do two of the above with 8 seconds and a third one for 4 seconds then that would give the module 20 seconds to get a signal would it now?