In light of the recent problems for names.
For name swapping, I feel what would work is:
Player A "GoodGuy112" wants the name from player B "BetaBoy"
Player A puts in the name request "BetaBoy" and gets a prompt: "this name is currently in use. If you wish to swap, the player you are requesting from has to request your current player name. - do you wish to proceed with your request yes/no"
A name request is stored in the server for 24 hours.
Player B, who wishes to give the name, also has to put in the name request of player A "GoodGuy112". He will get the same prompt.
If player B also accepts, if will be matched with player A's stored request and the names will swap.
..
This will require 2 bonds (1 from player A, 1 from player B), but it completely disallows sniping.
The other player will not get a prompt that a request has been issued for their name for obvious reasons.
If the request is not accepted by B within 24 hours, the bond is returned to player A.