Я бы сделал наврное немного по другому:
скрипт на php скаладывает задания на отправку в sql табличку вида id int,time_add datetime,time_sent datetime,phone_number varchar(20),message varchar(200),status int
где status:
0 - к отправке
1 - отправлено
2 - доставлено (если опреатор поддерживает уведомления о доставке)
3 - не доставлено
а отдельным маленьким демоном на perl проверял раз в 5-10 сек, есть ли в табличке записи со status=0, и если есть, отправлял через модем, попутно обновляя status на 1
Этим же скриптиком обрабатывал сообщения о успехе/провале доставки аналогичным образом и проверял баланс USSD запросом (в отдельную таблицу)
А другим скриптом на PHP выводил из 1 таблицы данные с отбором по статусу. Получится удобно и наглядно. Посмотреть как идет отправка, баланс, что доставлено, что не, что ожидает...
Маленький скрипт на PERL (проверка баланса/чтение записной книжки пока) есть, так что только дописать...