@sam yes, I see a POST to /u/<username>/preferences/email with form-data and the new email in the form. The response is a 200 with no body data.
Is there some deeper debugging I can enable that could reveal where the request is stuck?
EDIT: It appears that this is caused by DigitalOcean now blocking port 587.