Hi Ian!
About the hosting environment: sure, anything you like to know.
I'm using Docker in Kubernetes, hosted in the Google Cloud. Apart from that it's a rather straight-forward setup: An Nginx server (in a container / pod) which accepts connections from the internet and does the SSL termination and forwards requests to the other container / pod which runs Mattermost.
Kubernetes uses an internal network and DNS for routing any kind of traffic (TCP / UDP) to the respective containers.
Google Cloud does have a firewall, but generally all outgoing traffic is not blocked, incoming traffic needs to be enabled per port / host.
I suspect that there is something generally wrong which results in timeouts for various things, because even though sending emails generally works, it sometimes doesn't:
[2016/05/18 14:57:43 UTC] [EROR] Failed to send mention email successfully email=xy@foo.bar.com err=SendMail: utils.mail.connect_smtp.open_tls.app_error, dial tcp 104.130.177.23:465: getsockopt: connection timed out
Before running the upgrade I was running 3.0.1 on a fresh database. If it helps I can generally nuke my database and try something else if you like.