Arduino Nano SIm800L Modul String setzen und vergleichen.

Mit dem warten nach dem Senden eines AT befehles an das Modul, hatte ich das eigentlich so verstanden, dass das Modul eine gewisse Zeit braucht um den Befehl zu verarbeiten

Ja. Und die Übertragung selbst dauert auch etwas. Du brauchst 1 / Baudrate * 10 Sekunden pro Zeichen. Im Vergleich zur Geschwindigkeit des Prozessors ist das schon eine Ewigkeit. Das ist der Grund weshalb das normal nicht in einer while-Schleife geht. Die würde ein Zeichen einlesen und dann sofort abbrechen weil das nächste noch unterwegs ist.

Das mit dem Delay ist daher nicht grundlegend falsch. Dadurch wartet man einfach und kann so sicher sein dass die komplette Nachricht da ist. Grob geht das. Aber wenn du nicht-blockierend arbeiten willst, muss man es anders machen. Das die Nachrichten mit einem Endzeichen abgeschlossen werden hat schon seinen Grund.
Hier man muss man halt noch beachten dass am Anfang auch CR+LF kommt. Das kann man aber ähnlich wie du es schon gemacht hast mitzählen

Was sich für mich bis jetzt auch so gezeigt hatte, denn wenn ich die Befehle zu schnell sende, dann macht das Modul nichts mehr und in der seriellen Ausgabe kommen nur komische Zeichen.

Auch deshalb die Anmerkung mit dem Zustands-Automaten. So dass man erst das nächste Kommando sendet wenn die Antwort des vorherigen abgearbeitet ist

Insgesamt ist das nicht das einfachste Anfänger-Projekt. Da muss man schon einige Feinheiten beachten. Auch wenn man sich etwas auskennt