It took some digging, as this module doesn't pop up near the top when searching for Net::SMTP, but it's worth finding. This module is EXACTLY what I was looking for. After finding Net::SMTP::TLS (old, broken, poorly implemented, not maintained), and then Net::SMTP::TLS::ButMaintained (maintained, but still poorly implemented), and Net::SMTP::SSL (only supports the deprecated SMTPS on port 465), I finally found this module.
If you are looking for a drop-in replacement for Net::SMTP that adds STARTTLS support, this is it. Works perfectly for me. Thanks so much!