I just fixed it. I have been badgering OnStar / GM for months. They had me uninstall and reinstall the app, delete and re-add the vehicle, reset password, and disabled and re-enabled notifications in the myChevrolet app multiple times. I jumped through many hoops as part of their troubleshooting process, but nothing restored the charge complete texts. After many phone calls and emails, I finally got the solution from OnStar. They asked me to disable all notifications, wait 3-4 minutes, and then re-enable them.
Well, just for good measure, I set all of the switches in the myChevrolet app Notifications section (including email address and text number) to off and waited about 20 minutes; then went back in and re-enabled my email address and text phone number and re-enabled Charge Complete and Charge Interrupted notifications. At that point, the car had been fully charged from last night but I immediately got a charge complete text and email.
To verify it still worked, I took a short drive and then plugged the car into the charger again. After a few minutes (that's all it took to charge the car since it was a short trip) I got another charge complete text, so it appears to be working reliably.
The secret was to leave the notifications settings disabled for a longer period of time. When I disabled and re-enabled, I guess I didn't give it enough time to be communicated back to OnStar. Hopefully this will work for y'all too!