If schleife verzögerung

Vorab: Bitte lesen! Wie man dieses Forum benutzt - bitte lesen
Da ist erklärt, wie Du den Code richtig einbaust.
Das kannst Du auch noch jetzt ändern.

Dann ist Dein Konzept falsch.

Also Deine ganzen delays sind verwirrend und warum delay(0);?

Aber egal.
Vieleicht sowas hier?

bool Sammy = false;
bool sammyMerker = false;
unsigned long lastmillis = 0;
const unsigned long timer = 7000; // Zeit in ms
void setup()
{
  Serial.begin(115200);
  Serial.println(F("Start..."));;
}

void loop()
{
  Sammy = digitalRead(10); //anfang
  if (!Sammy)
  {
    if (!sammyMerker) // hier muss ein teimer hin 7 sekunden reset wen sammy auf 1 ist
    {
      sammyMerker = true;
      lastmillis = millis();
      Serial.println(F("Starte Timer!"));
    }
    else
    {
      if (millis() - lastmillis >= timer)
      {
        Serial.println(F("Timer ist abgelaufen!"));
        sammyMerker = false;
      }
    }
  }
  else
  {
    if (sammyMerker)
    {
      Serial.println(F("Reset des Merker ohne Zeitablauf"));
      sammyMerker = false;
    }
  }
}