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.
The server where you bought the domain probably offers hosting services but usually at a cost. If you want to do it for free, have your domain redirected to whatever free web service you decide to use for your website. Remember, free sites are limited in the number of pages and can have a lot of ads. On the other hand, hosting your own website as in Method 2 above, or having your site hosted where you bought and keep the domain, allows you to pretty much create as many pages as you want, without any advertising you don't put up for yourself.
Examples of other TLD include .uk, .ws, .co.jp, .com.sg, .tv, .edu, .co, .com.my, and .mobi. While most of these TLDs are open for public’s registration, there are strict regulations on certain domain registration. For example the registration of country code top level domains (like .co.uk for United Kingdom) are restricted for the citizens of the corresponding country; and the activities with such domains website are ruled by local regulations and cyber laws.
Shared Hosting: This is usually the cheapest form of website hosting because it’s the most economical when it comes to the use of hardware. Shared hosting means that multiple different websites are all hosted on the same server, with each user being allocated a certain amount of storage space and a certain amount of resources. This is often the best option for hobbyists and bloggers.
Almost all the services offer some sort of page builder that makes it easy to drag and drop to build your page. These are great for getting started, but they often lock you into the service. Most page builders are proprietary to the service, or don't create HTML that's portable enough to be easily moved to another service if you decide it's necessary.