ich würde es etwas einfacher machen:
beim Feuern des Buttons zu begin des JavaScript die Button-Farbe ändern, und je nach Erfolg/Misserfolg des Requests die Buttonfarbe wieder zurückändern.
Das wäre wesentlich einfacher, als nach einem Button-Click den NodeMCU im Halbsekunden-Rhythmus erneut zu fragen, ob der Button wieder umgeschaltet werden soll...