Mmmm, why don't create a "daemon-script', or create a simple script and run it in a screen session?
I'm using pppd scripts to connect ("pppd call mobile" for example is the comand I launch).
I writen a chat script and put it in /etc/ppp, for example /etc/ppp/mobile.chat
Then is needed a pppd script in /etc/ppp/peers.
$ cat /etc/ppp/peers/mobile
connect '/usr/sbin/chat -v -f /etc/ppp/mobile.chat'
$ cat /etc/ppp/gprs.chat
Ok, that's all, "chmod +x" to thoose scripts and launch pppd call mobile as root to connect.
But you want a script that lanch connection command:
while [ 1 ]
if lsusb |grep $product_key_of_your_modem"
pppd call mobile
This is a very simple and bugged example.
You could decide to simply check if connection is up or not and eventually connect.
I'm running a script like that to automatically keep my system online through a bluetooth cellular modem.
I just control if ppp0 interface is up or not and if not connect even if my modem is not in the BT range. In tath case connection just doesn't happens and it just sleep 5 seconds before redo a check.
It's quite simple and you don't need any X server running nor gnome or kde and so on.