To your GameMaker questions, Yes and Yes. The $50 GMStudio is great to start with, though it is missing a few of the features of the "professional" version. If I were you, I'd take a look at the free version and try it out. If you like it, you may want to invest in the $99 version instead, in order to get more features.
The free version of Unity is great too. It is made more for 3d games though, but it can do 2d games as well with some extra work. The limitations(besides some features) are that you have to show the Unity splashscreen(which isn't that bad since it is only a couple of seconds, not in the middle of the game), and that you can't use it if you earn $100,000, which also is fine. The features you would miss would be dynamic shadows, some special effects, etc... but many of those things won't affect you, especially if you are going for 2d games. Also, the coding languages are Unityscript, C#, and Boo. I'm sure you would be fine with either of the first two considering your coding experience.
As to which is better for you to learn...it depends. If you know you are never going to care for 3d, GM is better for sure, but if you may want to do something in 3d, then you may be better learning Unity. But if you decide to upgrade to the better version, the $1500 is much more expensive than the $99 version of GameMaker.
Another consideration, how much time do you have to dedicate to this, and how quickly do you expect results. Even for 2d games, in general Unity could take longer, and especially so if you are doing 3d games. GameMaker does a lot of things for you that Unity won't do, but the tradeoff ends up being in power because Unity is much more powerful, even for 2d games.
Finally, there is nothing stopping you from trying both. You can see what you are most comfortable with and make a better decision having experienced both.