I was originally going to re-write it in C, but when I saw go, I immediately fell in love with it. In my mind it sits somewhere between C and C++. Yes it has a GC, but it's not obtrusive. Plus the language is simple and nice to work with.
Regardless of what language I use, someone's going to say it's a "bad" choice and others will say it's a "good" choice. Personally I believe the language is just a tool, and go is working out extremely well for us so far.
Have you had to do anything to avoid problems with the GC? (e.g. manual runtime.GC() calls, or work to avoid generating garbage)
There are plenty of good reasons not to use C#, but we shouldn't pretend that there aren't plenty of good reasons _to_ use it for specific problem spaces.
There are some other frameworks that use C# and are cross-platform. Monogame is the cross-platform replacement for MS's XNA, which targets most of the major game systems out there.
Yes, I understand that Windows is big and there are a lot of C# developers/fans here who immediately scream "What? C# can do anything!!!", but in practice MS doesn't support opensource where it matters and when it matters.
BTW, there are a lot of opensource games written in C#. More than there are written in Go actually.