Obviously every system isn't perfect, but I like a system that encourages trading.
Here are a few thoughts/ideas, some less novel and likely recycled.
1. Trading salary. There's arguments against this, but teams can already retain cap hit if trading a player, so how about the team retains the player and trades the salary/cap hit. It's essentially trading money. Teams can eat some salary, without actually needing to take the player and gain some assets along the way.
2. Deadline rentals. Actually renting the players out. Player A is on a Team 1 that's in the basement, signed or 3 more years. Team 2 is looking for a rental, but nothing with term. Team 1 can trade Player A to Team 2 until the end of the season/playoffs, but is returns to Team 1 after the season. Every season usually the only players available are UFA's. Not a hockey moves are made, but I always enjoy teams getting shuffled up. If there was less long term repercussions for trading said player, and no worries of collusion. Basement teams could benefit from sending a star player on a cup run, only to return at the end of the season. This will lessen the values of UFA's, but I think create more movement league wide. UFA's might just be moved to get something for them, and good teams can really stack up. Player returns at the beginning of the following contract/season cycle.
3. Re-instate the waiver draft. Definitely not needed, but instead of teams trying to slip players through waivers, bring back a formal option to exchange some guys at the end of pre-season. Likely wouldn't be any use big name guys, but drafts are always interesting. Some rules can be made, to make sure a team doesn't lose too many players, or have ample opportunity to select someone to replace the asset they might have lost. More or less having a year protected/unprotected list that teams can swap.