What is abysmal about it? The Look and Feel (Form), or how it operates (Function)?
If this is about how it operates, there are multiple factors that can affect your experience
-> Your mobile signal to internet
-> Your cars signal to ATT network
-> OnStar server load
-> OnStar internet connection
-> ATT network status
You see, the app operates in what is commonly called asynchronous mode. This means that when you log into the app and press a button to, say, remote start the car, the app has to first authenticate with OnStar.
If that succeeds, because it is a Start action, OnStar then asks for a PIN. If both are correct, then OnStar adds your Start request to a queue, which is processed by one of several OnStar servers. How soon your request is processed can depend on a variety of factors (like how many people are using the app at the time, etc).
When your request is processed from the queue, OnStar attempts to communicate with your vehicle over ATT network. This can take some time. Once communication is established, your vehicle authenticates and makes sure that it is indeed OnStar making the request. Once that determination is made, your car receives the Start request. It takes a few seconds to process that, and once it has determined that a Start happened successfully, it sends a confirmation message to OnStar. This is stored in another message queue on OnStar side. OnStar server reads that message and lets your app know that restart is complete.
As you can see, it is quite a series of steps .. and all of them have to happen without a hitch for the app to work as intended, and even then, it is slow (because it is asynchronous communication). OnStar uses 4G technology for newer vehicles (like Gen 2 Volt). For older Volts, it actually uses a crude form of text messaging to communicate with the vehicle. I am actually surprised that the app works as well as it does, given all the complexities.
Having said that, if you are having consistent failures with your app, maybe there is something that OnStar needs to fix on their end. Mis-configurations are not un-common. Or it could be bad hardware, or an issue on the phone, or an issue with ATT signals where you park, or something else.