This is what I do. I have a VPS that handles all the 443 traffic and then proxies it back to my home server on the correct port. I also just serve some things directly from the VPS since I have it already. It also works well to have a second box for things like uptime monitoring.
This is still a little weird. I found that the web client (in a browser) handles this really well with default settings. However, if I try to use the desktop app or a mobile client, I have to force it to burn in the subtitles for them to show up reliably. Fortunately, there are per-client settings for this now: