While I can't give you exact step-by-step information because I don't know who Vercel or ImprovMX are, I can provide a general answer which should help a lot. It is impractical to 100% avoid downtime, but you can minimize it (It is possible to do without downtime, but it is very complex and requires you run your own mail proxy)
The first thing to do is reduce the TTL for your MX records and the A record associated with your mail server name as low as you can (60 seconds? Sometimes you can go even lower). Do this well in advance of any other changes so it gets cached. As its email, TTL does not make a significant difference to delivery times - but this means if there are any issues they can be recovered from quickly.
Then to shift your domain and email, make it a 2 step process, separated by some time. It is probably "safer" to your email across first, then your email first, then your domain registration. To migrate your email
- Set up the email boxes/forwards on your new provider as the first step prior to migration.
- When you are ready to migrate email, change the MX (and SPF, DKIM, DMARC if appropriate) records to point to your new provider - but don't change the A record for your mail server yet.
- Wait for the length of the TTL you changed everything to before you started the migration - hopefully only a minute.
- Get all your users to check their email boxes (which should grab the email at their old provider)
- Change the A record to that of the new provider.
Email should now be flowing to your new provider.
Once your email has been updated, set up the DNS zone with the new provider (the details should be the same as the updated ones wit the old provider), and transfer the domain across.
Note that this is a generic outline, but there are lots of variables to consider - and which we can't advise you of without specific knowledge - but some gotchas include -
If you are using IMAP or a similar protocol which stores the primary copy of mail on the server, and then syncs clients to it you will loose the old email store. How email clients handle this will depend on the email client - you will want to test this before the migration.
You may be able to use a program to sync your IMAP email between your old and new boxes (and to give you more flexibility), if you know the credentials for all your users you can use a program to sync IMAP between your old and new mail servers. (In fact, this can get you out of a whole lot of problems). One such tool to do this under Linux is imapsync. There may be similar tools for Windows.
You need to be careful with SPF records during the migration - either set your SPF to soft fail, or temporarily include the records for the old and servers in the same record.
It may be possible to schedule this for the middle of the night and not do it without downtime - rather do it without impacting your mailbox owners. Depends on your userbase and dedication to the cause I guess.
BACKUP, BACKUP, BACKUP. Any major migration has the opportunity to go horribly wrong To be frank, I've no idea how most people handle email backups - I suspect they don't. There are tools that can back up IMAP mailboxes, and possibly you can do local backups of your users emails. (When I do a major migration, I backup the raw maildir/mailspool - but I am a Linux systems administrator by trade).