1. Set up both providers on an IMAP client that supports multiple simultaneous accounts.
2. Copy messages from the old provider to the new by simply selecting them in the old provider's folders in your IMAP client and dragging them to wherever you want them in the new provider's folders.
As long as you pick an IMAP client that supports copying between IMAP servers, this should do it. I used either Apple Mail or Outlook for this. I don't remember which.
I found the process of changing emails over meant I also was able to make Pass entries for them (another way I'm taking control of my data), and at the same time delete my account for websites I don't need anymore. It's been very cleansing.
Another thing I should mention is I wanted to try hey.com since it looks like they’re doing some interesting things (alerting users to tracking pixels to push back on clients like superhuman, whitelisting incoming mail, etc.) but they make it hard to get an invite so I gave up trying and paid for fastmail instead.
Also switched away from Google to Fastmail with my own domain about a year ago. Happy with the move, although Gmail still sees some activity because I never took the effort of migrating historic mails and all non-primary accounts.
It's a kind of shared hosting with full ssh (non-root) access. They offer a pre-installed Roundcube Webmailer, but you can host your own one as well.
I run my own Roundcube with my own Domain and configured a maildrop instance to sort incoming mails.
So far it works as a charm. The hoster is based in Germany and I trust them to be privacy-aware.
https://www.migadu.com/en/index.html
You pay based on traffic rather than per account/domain.
With more at home pandemic time I decided to just do it and have been super impressed. The Fastmail docs are really good, setting up DNS to use my custom domain had explicit steps and pictures for my specific provider (gandi.net) along with a ton of others.
They have super easy to setup import from Gmail to get things over initially and to keep things coming as you convert accounts.
They have really good instructions for all IMAP clients and it's been painless to set those up.
I did have to spend a day going through every account in 1Password and changing emails, but the super simple aliases you can setup in Fastmail make this great. I have a bunch of different ones for different types of sites (some very specific, some general catch-alls) on my domain which I can now blacklist in the future if I need to.
The main issue is that you realize a lot of sites are just terrible, many don't let you change your email at all and require contacting support. Some don't even let you change after contacting support (postmates just says to 'create a new account under your new email and abandon the old one').
In general though I'm happy I did it and the Fastmail site has been pretty impressive. I like paying for software I think is high quality and valuable (where the business and customer have aligned incentives).