No matter which company you host with the following will ensure you that can switch quickly.
1. Separate your concerns. Purchase your domain from a different place to where you host your site. This ensures that you can always change your nameservers and switch hosts.
2. Take regular backups to your home/office/off-site location.
These two things will mean that you can move quickly if you have to.
If you suspect you might have to move then it's better to use pop3 than imap for instance, as you won't lose your email when you move between servers.
Or use an imap copying service.
All companies change as they get bigger.
Years ago I would change the underlying servers config to land a customer.
These days we know how and why to set up a server and rarely change something as that will have consequences for everyone else on the server.
The needs of the many will always outweigh the needs of the few on a shared server.
Most configurations are available now through CloudLinux, so this is not as much as a factor these days anyway.
I think it's as much of a consideration of what service to take than what which host. On the whole you can expect better uptime from a VPS than shared hosting. If CloudLinux is used and configured correctly, it's likely that you will get more performance per buck on a shared server than a VPS and comparible uptime.
Consider your needs, how much does an hour of downtime cost you?
Only when you consider these numbers can you really decide what it's worth spending on your hosting.
I have no sympathy for a client who spends $10,000 on Adwords and sending so many people to their $20 VPS or shared hosting server, that their site is down.
But spending $10,000 on a service and only having $20 for your advertising is also wrong.
Just remember that you are a partner with your host. An basic engineer costs $25/hour and an great engineer costs more than $40/hour.
When you spend $4 on hosting (even if the hosting was free to the host) that's only 6 minutes of time from the good engineer or 10 minutes of basic engineer time a month and the company makes a loss.
You don't want to be at a company that makes a loss.
That means you have two options
1. Choose a solution that doesn't need much support
2. Pay more for your hosting inline with your support needs