Starting on evening and weekends is tough. I know one of my clients is alright with that, because our relationship is more casual, but I don't think the rest would be comfortable with me operating so casually for their business (they want me to be available for calls, e-mails, etc. during the business day). The thing is, the kind of service I provide is not just "let me go away and program something for you", it walks them through the process from conception all the way to deployment. I'm in a niche field (medical), but the people I'm dealing with are generally non-software folk. To them, I am a product guy, project manager, developer, architect, etc. all in one.
When I say top X%, I don't mean in a pure technical sense. I mean in the sense of, from management's perspective, if they had a project that they valued highly and knew they wanted to deliver on, who would they pick as the technical lead for that project. Which technical person would they put in front of the customer? Who would they want to be alongside them during the hiring process to find more technical folk? Those are the ways in which I've found I've been valued. I feel like I am a good programmer (who doesn't?), but I'm not the best programmer in the room. It's a more rounded skill-set and a willingness to do valuable non-programming things. A perfect example is a guy I used to work with - excellent programmer and very well-versed in computer science (whereas my background is engineering). In terms of speaking about best practices, patterns, development philosophies, etc. - he was very good, better than me (truthfully some of that stuff bores me). However, in terms of getting a project done in a high quality way, with predictability (estimation, scheduling, etc.), those are the things he didn't really care for, but I paid attention to. He's a great programmer and a good asset to any organization with a team, but I don't think he's do well on his own. Make sure you are confident in your estimation skills before going it alone.