Lots of variables...
Regarding your questions:
1.) It depends on both your level of experience with computers, programming, etc. as well as the language(s) you intend to use. Note that each host decides which languages to support, so that factors into the decision. In addition, it depends on how advanced/complex you want the website to be; some simply create a static yet elegant page that displays basic company information while others have feedback forms, user accounts, shopping carts, etc.
2.) Templates are ideal for those who do not have the time and expertise to design a page, both graphically and programatically. They're great if you want to use them as-is, but but keep in mind that there's often a steeper learning curve should you want to customize them since their logical approach may be far different from your own.
Note that templates are often created, and customized, using Dreamweaver, Expression Web, etc, so you should focus on the quality of the design and developer rather than the tool used.
3.) There is a learning curve for the user interface (where the options are, what each one does, etc.), just as there is for any new program. The most challenging part is learning the development languages and implementing proper solutions.
4.) It can go either way, depending on your business, your customers' desire/need for the website, your knowledge of programming, your dedication to the site, and the intended depth of functionality.
Bottom line: Start with a solid template to reduce the initial workload, use the template creator's customization services if available, and keep it as simple as possible while still giving your customers what they need.
Hope this helps,