Yeah the NHL might as well not exist in mainstream America, so NBC hasn't helped them at all. I know CBS used to broadcast MLB many years ago (when the Jays were in the World Series), and they currently air the NFL, but don't know enough about the network to know whether that's even an option. I can't think of any cable networks off the top of my head since Fox and Turner are the big ones aside from ESPN/ABC.
MLB does a poor job with marketing their sport, so they deserve blame, but man, watching that ESPN block, that network doesn't give a damn about baseball. They barely promoted it on the day they were airing 7 games, and very little effort was given when actually airing the games. The NHL has somewhat proven that not having ESPN's good side may not be beneficial to your league, so maybe MLB just needs to accept it and take the money, but not sure being on a network that either ignores you during the season or has announcers who spend all game telling you how great the game used to be is going to help the sport long term. Put Jeff Passan on baseball related shows as much as possible, that would be a start.