One random thing that really annoys me is that the site http://shakespeare.mit.edu does not properly forward http requests to https although they have an https version of the site.
Funniest thing I've ever seen is the docs for Nginx do the same, no http to https redirection. I mean, you would hope that the maintainers for the biggest web server in the world would be able to manage that but somehow... No they don't.
HSTS + HTTPS redirect is the answer. It's industry standard for a reason: it's just as safe as pure HTTPS since you can't get anything other than a redirect over HTTP, and HSTS protects your users from future attempted MITM attacks. The MDN page for HSTS explains it all very clearly.
Any other implementation is an immediate audit fail in my experience.
There's no tangible security benefit to fully disabling port 80, and if anything depending on the service it may just drive users away to shadier alternatives.
SSL (or TLS nowadays) not only protects against surveillance but also guarantees the integrity of the data you send and receive. Without it, someone could spoof the response you receive. In practice this means injecting ads or malware or even worse: fake shakespeare!