My recommended course of action: -
1) Setup forwarders on all mail on the domain(s) to a 3rd party provider, for example your ISP email or a Gmail account you have.
2) Setup hosting account at your new host. They should be able to provide you upload details and config (e.g. cPanel) access without the domain needing to be pointed to them.
3) Upload your site to the new host, and configure any mailboxes to match what you had at 1&1, and also add the forwarders to the 3rd party address.
4) Change the nameservers on the domain(s) to your new host. This can take up to 72 hours to fully propogate. What this means is that for 3 days any browser request or incoming email could be routed to either the 1&1 server or your new host's. Mail that goes to 1&1 will be forwarded to your 3rd party, web requests to 1&1 will show the site (still at 1&1), mail to the new host will collect on their server and also be forwarded, and web requests to the new server will show the site uploaded there.
5) After 3 days, configure your mail client for the new host, remove the forwarders at your new host and cancel the
hosting part of your 1&1 account (keep domain registrations for now).
6) Then and only then, look into transferring your domain registrations from 1&1.
7) When all done, close your 1&1 account completely. If you can, remove payment details, as I've seen them take payment for domains they no longer control
If you follow this advice, you should have absolutely zero downtime and miss no emails at all.
A decent host would even do most of it for you
