I think most people who have hosting never really read the small print until after they want to cancel.
Even if you do everything correctly and before time some hosts (e.g.1&1 and one.com) will try anything to get you to pay up.
Then there is the job of getting your domain transferred which some hosts make as difficult as possible.
For me I get my co.uk domains from 123 and the .com from dayanahost or godaddy. This makes them easy to administer.
Then I pay unlimited web hosting £3 a month for unlimited space and bandwidth.
In the past I have used, bluehost, gator, 123, godaddy, 1&1, one.com, dayanahost,and a host of smaller ones. Each has their own little niggles, some more than others.
In the words of the eagles:
"Relax, " said the night man,
"We are programmed to receive.
You can check-out any time you like,
But you can never leave! "