Cloud services like Rackspacecloud and Amazon EC2 are probably going to be more reliable than whatever you're planning to run yourself. They're straight-forward to learn, scale quickly, with relative ease, at reasonable cost. I don't see "going to the cloud" as an extra hurdle, but as a way to reduce headaches and to simplify deployment from the start. If you're worried about cost.. you can start with Linux instances at Rackspace for like 11 bucks/mth.
On the topic of OS, either Linux or windows servers will work just fine, and if you're not comfortable with Linux, I wouldn't mess around with it unless you really need to save every penny. Linux instances give better performance:cost ratios than their windows counter-parts, but (in my experience, windows guy here) take more time to set up.
If your project starts to get lots of traction, and you can start to pay yourself for your time spent on it, then it would start to make sense deploying real servers, or to start learning how to administer Linux instances/servers.
Anyhow, good luck with the project, have fun! :)