I've been a professional programmer for about 20 years now, I'm currently contracting and apart from that, I've pretty much tried everything on your list - I've been a development manager, team lead, contractor/consultant, ran my own company and occasionally took a little time out during the inevitable "career pauses" you get as a contractor to do something completely different for a couple of weeks. Usually the latter showed that I really shouldn't be quitting my day job as a programmer, but it also gave me time to recharge my batteries simply because I was exercising different parts of my brain.
First, I don't agree with those people who say that "if you even have to think about doing something else, you're probably in the wrong career". I disagree with this statement for the simple reason that there is nothing wrong with looking around and reflecting on your current situation and spend some serious thinking time on where you are and where you want to go. Unless you want to have what I'd call an accidental career, you'll have to work out what the next step is that would get you towards your goal. Keep in mind that people change, your priorities change and career decisions you made when you were in your late teens or early twenties might well be different from the decisions you would make now. But it is up to you to do something about that.
If you are thinking about managing a team, I would advise to start small - see if you can get a team lead contract for a team with a few members. These do occasionally come up and it'll show you if you can both handle the demands of herding cats, err, look after two or three developers and more importantly, also enjoy doing it. It is very different from programming and it's not everybody's cup of tea and if you're struggling to handle 2-3 people, maybe leading 20 might not be the most brilliant idea. On the other hand you may find that you are really good at it and the world does need more competent software development managers. We've got enough incompetent ones already. Only one way to find out.
Running your own company writing iPhone apps - why not? You'll be giving up large chunks of your life as you'll have to fit in software development, user support, management, looking after the companies financials and dealing with the tax man into the available time. You'll forever wish for another 24 hours in a day, but you'll get over that hurdle. It can be immensely satisfying because you know that you've built up everything yourself, but on the other hand if you fail, it's all your fault as well. The latter can be rather depressing, been there, done that, lost the T-Shirt. Again, there's only one way to find out if it is for you...
Doing something completely different - well, the big question is what do you want to do? Do you have any hobbies or skills that are marketable and would actually pay some money towards your bills? For example, playing guitar in bars usually doesn't. Ask me how I know. I would ask myself the question - and I have had to ask it in earnest - what would you like to do if you found out you couldn't continue programming for whatever reason. You may never need the answer, but if you have the beginning of the answer you will be in a much better position than most people.
One of the advantages of being a contractor is that you could dip your toe into either of the two if you can find a client that only requires your services part time. Say, contract three days, work on your own stuff for two. That would give you some kind of cushion just in case your alternative doesn't quite take off as intended. Plus, having multiple irons in the fire is a good thing in the current economy.
Even if you can't follow through immediately with the ideas you come up with, there is never a wrong time to think about these matters. Staying put might not be an option if your client does a lead duck impression, for starters, so having plan B (and C, potentially) is A Good Thing.