I think I know why we get error 5006/2002
First of all, I'm assuming this is a server issue and your connection speed which indirectly affects your connection to the game.
Character data is partially stored on your computer, but the other half is stored on the servers. Trying to log into a server, requires your connection to retrieve said data. But since there are hundreds of people trying to log in at the same, the servers cannot handle processing all the data outputs at the same time. Resulting in an error of course. This may have something to do with cache data stored on our side which is retrieved by the server when we try to connect as sort of a certification maybe and simply put the servers cannot retrieve them in a specified time before kicking you out of the queue.
There has been a number of ways to get around this, one which is simple but seems to work; jumping data centers and changing back. But I don't think this works if you have a character already on the servers, since you are again trying to retrieve data. Though if you go to a empty server where you have no characters, I think that overwrites the previous cache with much less data on it. This method may or may not work in one try and may require some number of tries.
I don't think this can be technically 'fixed', since this is basically similar to a small scale ddos attack. They made preventative measures in-game for congestions by adding multiple instances and it works wonders. But when 100's or maybe even 1000's of IP's are trying to send information to the servers... that's when things starts to get frisky.