IMO, this decision should be based primarily on your development OS. If you already have a development environment, then I would choose the OS that matches that environment. If you do not have a development environment, then choosing a hosting OS is premature unless you are simply experimenting. If you want to build sites in .NET using the latest versions of the framework, then I would have my development OS and my hosting OS in Windows. Monetary cost really shouldn't be the motivating factor since the assumption is that regardless of your choice, the benefit you gain by your decision is going to outweigh the cost and that will be true for both .NET and Java.
If your plan is to use the EC2 stack as your development environment, then again I would focus on where you want to go. As mentioned earlier, if you want to build .NET sites, then I would use a Windows OS. If your intention is to build sites that would be deployed on Linux or Unix web servers, then I would choose Linux as a development OS. Part of writing sites, is understanding the web servers on which they will be deployed.