I think you’re right.
And it turns out you’re not the first… when searching for DISCOURSE_SMTP_PORT 465 I found a whole pile of similar issues.
- Not able to send email Net::ReadTimeout - #18 by Stranik
 - Email not working but i can access smtp server from container
 - DigitalOcean + Siteground Email via port 465 won’t work (2525 will work)
 - Problem with SMTP configuration
 - Post-install, Curl can send email, but Discourse cannot. Help to fix?
 - Mail problem on discourse with reverse proxy
 - Can't setup SMTP with SSL/TLS
 - SMTP email issue Net::Timeout - #3 by neounix
 
The last one contains a link to the (possible?) solution.
With this patch, it's possible to set
DISCOURSE_SMTP_FORCE_TLS=true to use implicit TLS on port 465