Ahem... semi-technical explanation for disconnects.
Each server has a maximum capacity, within the game code is an algorithm written which determines activity/inactivity. When server reaches critical performance levels, the algorithm attempts to determine which logged on account has been active the least over a specific period and disconnects it. This is not a problem, all games and systems do this. The problem is what the server/algorithm determines as inactivity. Currently, your chances of DC are much greater in queues than in the game while you are chatting etc. This is because the game/algorithm considers your wait time to be "inactive" time, thereby greatly increasing the likelyhood of your disconnect. The problem with fixing an issue like this is that the server load algorithm is built into the base programming and they have to modify the whole game in order to fix it. I am sure, if they are working on it, that they are running a duplicate test server to specifically identify the problem areas, and then they will have to write code to declare those activities to be "active" time. The inherrent problem with this is that you are modifying base code and any code modifications can have unintended consequences such as NOT diconnecting actual inactive accounts or random disconnects., or even such things as, click on Malificent the Dragon and it DCs you. this type of testing can take quite a while and I am sure they have been working on it throughout the summer.
That being said, I know nothing of the type of program they are actually running, or in what language it is in. I work with databases. However, although the coding may be different, the thought processes are the same.