I've shipped production code developed in Mono on OS X, deployed to both Windows and Linux. I don't think that should be a huge roadblock moving forward. MS itself is trying to foster this (for the benefit of selling more Azure services presumably) with the next version of ASP.net which will run on basically everything.
Re the expense of doing it the MS way, Microsoft will gladly throw free/cheap software and services at you: https://www.microsoft.com/bizspark/
Re the expense of doing it the MS way, Microsoft will gladly throw free/cheap software and services at you: https://www.microsoft.com/bizspark/