На данный момент задача решена, звонок поступает один раз, спасибо упоминавшим про флаги, в них и было дело. delay(180000);
и asm убрал, теперь костылики и ходунки не требуются

Посмотрел несколько раз урок 6 Гайвера про кнопки и флажки, въехал, как это работает, посмотрел внимательно на свой код, уже с пониманием что, где и зачем, и переписал. С наступающим!!!
Спойлер
Код:
button = !digitalRead(8); // считываем текущее состояние кнопки
if (button == 1 && button_flag == 0)
{
button_flag = 1;
if (button_flag == 1)
{
String command;
command = "ATD+" + numberCall_1 + ";";
MySerial.println(command);
delay(30000);
MySerial.println("ATH");
}
}