I am currently attempting to design a social networking site in dotnetnuke and so I am running into some of the things you mentioned. I will try to give you the answers to your questions as I see them. Someone will correct me if I am wrong I'm sure.
1. Yes I think dotnetnuke would be a good match for your project but you aren't going to get the features you want out of the box. You will create it with dotnetnuke as a tool that will make some things much easier. Dotnetnuke was mainly built as a business CMS for shopping carts and the like and has grown from that but if you look at the available modules you can tell that social networking is a new branch for dotnetnuke. That means that some things that are easy in other CMS's are harder in dotnetnuke. At the same time it means you have reliability and analysis features that rival the other CMS out there.
2. No. It won't give you that ability but you can have it created. It does not seem that the module you want exist on the market right now (though I think a lot of developers are trying to change that). I wanted user home pages, similar to what you mention and am having to have a module designed to meet my needs. You will likely have to do the same. Also comercial modules are built for the majority of users, not you alone, so to be honest you will be hard pressed to find a module on the market that is just perfect for anything you want. I am finding hundreds of little things I want that don't exist, like I wish this module would do it this way, or jeez it is soo close but not good enough. If you are looking at snowcovered etc and saying these things than you will need a developed module.
3. Yes but again to get the exact functionality you want, you will probably need a developed module. There are tag and comment modules out there and your best bet may be finding one with the source available and geting it modified for your needs. The keyboard controls you require will likely have to be added to most modules you use. I may be wrong on that but it is my guess.
4. Yes, but most of them have already been discussed. But think of them as short cuts not out of the box solutions. A lot of these modules offer source code, either modify it if you are able or hire a developer, it can get expensive if you have to do this a lot (I know to well) but if you are a perfectionist like me and want things your way it is the best way to go about it. (as for the impatience I am right there with you, but if it is worth doing it takes time)
5. Well I'd suggest what you are already doing is a good start and to continue it. Read every post on the site and learn more about dnn. Look for a developer who's work you like (both the module and the code behind it) and see if they are available for work, if so ask for a quote and suggestions about how those modules could best be created matching your needs and staying in the budget you have. Also know what you want it to be in the end but be flexible on how some of it is accomplished. You might see the module one way and there might be an easier solution that would make it cheaper and faster.
I think dotnetnuke is moving in the right direction with social networking but for those of us who want our site up yesterday it can't move fast enough. I think there is also a bit of a worry about moving to social networking because of all the people who want to make it rich cloning myspace and don't want to put the money into it. For those of us trying to start a real (and different) social networking business, it can be hard to get the things you need. Oh and dotnetnuke offers great security features in my mind, which is one other reason I think it can be great for social networking, social networking sites are often the victim of attacks (I am under attack now and dealing with it), by the way, Im under a ddos attack and it has slowed me down, but dotnetnuke and my site haven't crashed once