La adaptación de niveles en la comunicación RX/TX la puedes abordar de diferentes formas, con adaptadores de niveles que ya vienen hechos o directamente mediante TR o simples resistencias dependiendo de la velocidad de comunicaciones que decidas.
El nivel de alimentación del SIM deberías independizarlo del regulador del Arduino y regularlo a parte porque el SIM800 necesita picos de corriente elevados en el momento de comunicarse con la central y corres el riesgo de quemar el de la placa.
Los comandos AT soportados están descriptos en las hojas de información del propio fabricante pero hay que estar atentos porque hay pequeñas diferencias en la forma de comunicarse entre los distintos SIM lo que hace que un comando enviado a un SIM900, no tenga el mismo resultado en el SIM800.
Yo no he tenido problemas de estabilidad pero te reitero que he usado SMS en formato ASCII y no en RTU pero a parte de la alarma de acción inmediata y diferida en diferentes sectores, se podía preguntar y medir distintos parámetros como tensión de baterías, paneles solares, señales de intensidad de campo de diferentes redes de enlaces radioeléctricos, temperaturas de diferentes sectores, encender o apagar múltiples dispositivos, etc.
El proyecto empezó con una simple alarma remota comunicada por radio y termino en distintas variantes para adaptarla a la necesidad de la empresa en diferentes sectores.
Te comparto el documento sobre los comandos AT que en su momento use.