This should demomstrate how your setup could function. I can't test it though. Remove the connection you have made to the reset pin. I've also highlighted one issue in your existing code.
#include <Arduino.h> //v2
#include <avr/wdt.h> //v2
void setup() {
wdt_disable(); //v2
delay(2L * 1000L); //v2
wdt_enable(WDTO_2S); //v2
digitalWrite(testPin, HIGH); // at this stage testPin is an input so this sets the pullup resistor on.
// Start Timeout Timer
startMillis = millis();
// initialize the LED pins as an output
pinMode(readyPin, OUTPUT);
pinMode(failPin, OUTPUT);
pinMode(callPin, OUTPUT);
pinMode(testPin, OUTPUT);
// initialize the pushbutton pin as an input
pinMode(buttonPin, INPUT);
// connection state
boolean notConnected = true;
// Start GSM shield
// If your SIM has PIN, pass it as a parameter of begin() in quotes
while (notConnected == true) {
digitalWrite(failPin, HIGH);
if (gsmAccess.begin(PINNUMBER) == GSM_READY)
{ notConnected = false;
digitalWrite(failPin, LOW);
digitalWrite(readyPin, HIGH);
}
currentMillis = millis();
static unsigned long lastResetAtMs = 0 ;
if (currentMillis - startMillis >= startupPeriod) {
digitalWrite(testPin, LOW);
}
else {
if ( currentMillis - lastResetAtMs > 1000 ) { // v2
wdt_reset(); // v2 - reset wdt every 1 second until startupPeriod expires
lastResetAtMs += 1000 ; // v2
}
}
}
wdt_disable(); //v2
}