You cannot retroactively relicense code - only new code. Microsoft can just take the last version that's not GPL.
This is why if i were making an open source project, it will start off with GPLv3, with a commercial paid license if anyone wants to avoid the terms of the GPL. That gives the best of both worlds - open access to anyone, and if they want to modify, they must also be willing to contribute in some way.
Yep, this is why GPL exist. "But corporations hate GPL" as I can hear there often, well tough luck… GPL is about the rights of the users, not corporations. Another exemple of why open source projects should adopt GPL or AGPL, nothing less.
Good example of the strength of the GPL for projects you want to be open and don't want mega-corp to embrace and close.
BSD, MIT etc if you're fine with that being done for the project.
There are other dimensions for licensing, this is just one consideration of many in your decision.