I also realised (by looking at the output of dbus-monitor) why opening the contacts list is so slow and uses up 100% cpu. It seems, upon opening, this list queries the online status of every contact in your list against all the im servers. I would've thought that it maintains this list in the background like most im clients. When you have a lot of contacts, this process is slow.