I am in the process of tracking down an error that occasionally crops up. Occasionally, under circumstances I'm still tracking after 4 or 5 days of investigation, WhoLib (or my addon or the client) will simply stop processing new /who's. In a recent alpha build I made my addon, Socialist, run a /who on every name that came up in global chat channels. Most of the time, this works just fine - even when sitting in Dalaran during peak hours, the queue may grow up to a few hundred long, but everything chugs along just fine.
I'm going to start putting in debug code to see if any new information can be garnered as to when this lossage is caused, but it APPEARS that what triggers the it is a zone change into Dalaran, which is notorious for taking a long time to load, and having a lot of 'load-lag'. I have a suspicion that some request on the server is not timing out - I suspect that WhoLib is sending a /who and waiting forever for a response that is not coming.
Once the lossage has occured, nothing short of a /script RestartUI() will fix the /who system. This includes user-initiated /who's, such as when shift-clicking a name in chat - all processing of /who's simply terminates. New /who's are appended to the queues as normal, causing very large queues indeed.
If it turns out that this is a bug of the client (perhaps when sending a /who during server transition), perhaps WhoLib should have a 'thread' (e.g. OnUpdate every minute) which monitors the length of the queue and the query of the next queue. If nothing has changed in the minute, it will begin prompting the user to reload his/her UI, explaining that a client bug outside of WhoLib's control has occured.