That's straight up not a happy ending though. The only non-white gay hockey player in the entire series loses almost all of his friends (unintentionally due to the friends he doesn't lose, so there will always be that hanging over their relationships), he goes to his husband's team where not only is he paid way less than what he's worth, he's demoted (they could've given him the A or had a rotating captaincy, that does happen in the NHL), he's called a prima donna, his boundaries are trampled on, everything he feared happening comes true. What sort of message does that send?
He shouldn't have had to choose. Yes, Ilya had to make the decision to go to Ottawa but he ended up getting a raise, close friends, and supportive teammates out of it. Shane got none of that.
Okay so maybe YOU don't think it's a happy ending? And like, you're doing a whole lot of conjecture there. We don't actually know what either of them get paid. Shane doesn't lose Hayden and he reconciles with JJ, the only two Voyageurs he was really close with. We don't know that they don't ultimately work something out about the captaincy because we literally only see them stepping on the ice for their home opener. Nobody actually calls him a primadonna in the book or anything like that? We don't get any of the reaction to him leaving on the page other than his loved ones going "good for you dude I get it".
The Voyageurs don't kick him out, Shane chooses to leave and he chooses to go to Ottawa where his husband and his parents are and where he knows he can play kickass hockey with a great team. And who's to say that Shane doesn't get close friends and supprtive teammates out of the move? Why would Shane not make friends with the Centaurs? He already IS friendly with Wyatt and Bood who both coached at foundation camps. Shane isn’t punted to the beer leagues, he's going to play with an insanely promising team that also has his husband on it, who he fucking loves playing with and who he will finally get to see more than once a month. And he wasn’t happy in Montreal anymore even before they got outed!
If anything, Shane gets a better deal out of his move than Ilya did because Ilya was fucking miserable for two years before it started getting better. He built the Centaurs from the ground up. They were the literal worst team in the league and Ilya ground through loss after loss after humiliating loss and the media DID mock him about his move and Shane just gets to waltz in and probably win a Cup immediately.
And again, the whole point is that he realises success didn't protect him. That's the message being sent. Don't make yourself fit the mould they're trying to stuff you into because it's not worth it; find your happiness and fucking claim it (which is the same message of Game Changer, and of Heated Rivalry, and of Tough Guy, and of Common Goal, and of Role Model. Rachel is not subtle). Shane was the undisputed best (because Ilya was stuck on a shit team!) and it didn't mean shit. The book is so fucking clear about Shane moving to Ottawa being an improvement and not in any sense a downgrade because he's not actually losing anything, he's leaving a hostile and toxic work environment and taking control of his life and yeah, sure, he isn't captain immediately. But if your husband had spent years on a shit team, to be closer to you, and finally got them in shape just before you joined him, it would be really fucking shitty to go and say actually, I should be in charge now. Ilya deserves the recognition and their relationship is based on real, honest competition. Shane still has two more Cups and an Olympic medal. He's fucking fine.
So yes, everything he was scared of came true. And he realised it wasn't nearly as scary as the thought of losing Ilya, so instead of bowing and scraping and going back in the closet, he chooses Ilya, and he's damn well rewarded for it.