If you want (or need) reliability, then you should stick with a commercial modem.
If you use an Arduino with a modem module, then you will end up writing software for the Arduino and for your computer. That makes for more opportunities for problems and program errors.
Use a commercial module, and you only have to write software for the computer.
This is right up my alley.
The company I work for has as a (small) part of a larger system an interface to GSM modems to send SMS messages. This thing has to run 24/7 365.
Reliability isn't just a question of hardware. It is as much (maybe more) a question of the software.
Your software needs to be aware of and capable of dealing with a lot of error conditions.
What do you do when the modem has no connection to the net?
What do you do when somebody forgot to pay the bill and the SMS can't be sent?
What do you do when some yoyo uses a pre-paid SIM, and it runs out?
What do you do when despite using good hardware, the modem does a restart in the middle of sending an SMS?
When we wrote ours, it was assumed it would be trivial (by people who aren't programmers) because sending an SMS is such a trivial, everyday thing to do.
It ended up taking several weeks, 90 percent of which was devoted to handling errors that the GSM modem produces.