I wanted to point out that you do not mention critical issues. One is that some of the Top 5 Hosting Services do not offer an e-mail account. Others charge $14.00 a year to transfer your a Domain Name and host it with them or else the domain owner does not get the hosting for free. The list of unpleasant conditions that render those top 5 Hosting Services substantially less appetizing than you painted the picture, and that list goes on and on.
Moving to another website consists of transferring the website’s files and databases, configuring your site with the new host, and directing your domain’s DNS to the new host. Once you pick a new site host, they can usually help you out with this process. The cost will depend on the host you’re switching to, but it will probably be anywhere from $150-$400.