I bought a Kasa Smart Plug (
https://www.amazon.com/dp/B08LN3C7WK). It has an API for reporting energy usage. Luckily there was already a library (
https://github.com/python-kasa/python-kasa) for calling this API. I wrote a small console app that checks energy usage and when I detect a drop, I know that the dryer is done. Then the app uses Twilio to send me a text message.
This is my second attempt at solving this problem. In the first incarnation, I attempted to do audio recognition for the sound that the dryer makes when its done, but I just couldn't get it to work well. The sound was too short to generate a good signature.