My proposition for UFA would be the following;
1. "UFA Re-signing" would be limited to the RFA Re-signing period.
2. Teams are only able to "re-sign" 1 UFA prior to the actual free agency.
3. A legitimate reason must be given for the player to agree to re-sign (Team has taken steps to compete now, hometown, long time player, etc.)
4. Limit the number of offers. There can't be a back and forth. Say something like 2 offers, if they are rejected it's time to move one.
5. No sign and trades. If you re-sign someone they stay on your roster until the end. If you trade rights, it is simply the UFA rights you are trading.
This allows people the opportunity to attempt to get the jump on 1 player. If they have two, they leave the 2nd unsigned and try and get them in free agency.
It also provides minimal value to UFA rights in a situation that someone might not be looking to keep a certain player.
The limit to 1 UFA would hopefully ensure that some bigger names are still available (Players could either keep their own, trade for rights to someone they want to ensure they hit free agency or be left unsigned due to the market.)
Obviously would be open to changes and such, just a basic thing I thought of to give people a little more room for planning what they want to do.
In the situation Vegas for example would either have to trade one of Perron or Neal or have one of them go to UFA and try and get them there.
Obviously I would expect there to be a decrease to some degree in what is available, but in theory there should still be options available because a competitive team likely isn't going to trade UFA rights for a player they want to a competitor and weaken the UFA market for themselves at the same time.