ESP8266 - Webserver with blinking LED after Submit

Hello Guys,

So I got a new ESP8266 after toasting the last one and now I am fighting with such a simple programm. But to be fair, I cant find any example of the situatuin I am in which wonders me if this is even possible.

The work is simple :
ESP8266 Webserver with a Text Input/Form which reads the Data you write into the Text. - That is simple and easy done.
+
Letting and Onboard LED blink continuously after sending the form / letting it stop to blink after sending a stop signal - the complicated part.

Turning a LED on/off is a simple task even with a Form, but letting it blink seems not possible no idea how I do it. I tried it with Asynch Server and with Synch Server. Different methods but not chance to get it to blink.

My current code:

#include <SPI.h>
#include <Ethernet.h>
#include <ESP8266WiFi.h>
/*byte mac[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1,128);
EthernetServer server(80);
*/
const char* ssid = "";
const char* password = "";
WiFiServer server(80);

String header;


void setup() {
  Serial.begin(115200);
  // Initialize the output variables as outputs
  pinMode(15, OUTPUT);
  // Set outputs to LOW
  digitalWrite(15, LOW);

  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println(WiFi.localIP());
  pinMode(15, OUTPUT);
  digitalWrite(15, HIGH);
  server.begin();
 /* Ethernet.begin(mac, ip);
  server.begin();
  Serial.print("server is at ");
  Serial.println(Ethernet.localIP());
  */
}


void loop() {
  int timer = 0;
  // listen for incoming clients
  WiFiClient client = server.available();
 // EthernetClient client = server.available();
  if (client) {
    Serial.println("new client");
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.write(c);
        header+=c;
        if (c == '\n' && currentLineIsBlank) {
          client.println("<!DOCTYPE html>");
          client.println("<html>");
          client.println("<body>");
          if(header.indexOf("GET /?timer") >= 0){
            timer = 1;

            digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
            delay(1000);                       // wait for a second
            digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
            delay(1000); 
            Serial.write("Timer");
            client.println("<form action=/timer>");           
            client.println("<input type='text' name='timer'>
");
            client.println("<button>Timer setzen</button>");
            client.println("</form>");
            client.println("<form action=/>");   
            client.println("<button>Stop</button>");
            client.println("</form>");
          }else if(header.indexOf("GET /") >= 0){
            timer = 0;
            Serial.write("Root");
            client.println("<form>");          
            client.println("<input type='text' name='timer'>
");
            client.println("<button>Timer setzen</button>");
            client.println("</form>");
          }
  
          
          client.println("</body>");
          client.println("</html>");
          break;
        }
        if (c == '\n') {
          // you're starting a new line
          currentLineIsBlank = true;
        }
        else if (c != '\r') {
          // you've gotten a character on the current line
          currentLineIsBlank = false;
        }

      }
    }

    // give the web browser time to receive the data
    delay(1);

  
    // close the connection:
    client.stop();
    Serial.println("client disonnected");
  }
}

Any ideas ? I am really not sure how to solve this without threading which is not possible on an ESP8266.
Thanks and Greetings