"Substantial" depends on the year...but assuming a good one...
1) I didn't, I just kind of sloped into it, I never intended nor set out to do so, I always intended to do a job I enjoy (coding) and worry about money later.
2) I've worked hard, and kept learning new technologies, I've worked with some great and inspiring people, and I hope I offer that to the people who work for me. I ended up in a lucrative industry by concentrating on learning about internet technologies in the mid-late 90s (so old-school stuff like CGI, Classic ASP, ColdFusion) and also branching out so going to after hours art lessons to improve my drawing/photoshop skills (as back then if you were a web dev, you did EVERYTHING, code, database, layout, design, security, deployment, etc etc).
3) Possibly. My GCE/A-Level results weren't stellar. I have a 2:1 from an ex-Polytechnic. I understand my strengths and my weaknesses, and work on improving both. I'm a reasonably good diplomat and reasonably aware of office politics, and seem to be able to "get on" with people. I also definitely work in the best industry in terms of salary for "just" writing software. That wasn't luck, that was a conscious choice to train up and apply for specific types of companies.
4) Getting stuff done. Shipping working software, which users want, is an overlooked skill. It can be efficient, well-written, using the latest technology, resilient, scalable and fire-proof, but if it is delivered late, or isn't what the business asked for, then it's useless. I now manage developers rather than "just" writing software, and instilling the desire to thing right, and ship the right thing is key to being valuable to the business. If you're valuable to the business (and it's a good company) then you'll be rewarded appropriately.
I'm probably now at the top-end of the salary range, and unlikely to earn any more anywhere else, doing what I'm currently doing.