The friends list is not very useful without an indicator of whether your friends are in a game or in the lobby/menus. Because if someone is online for, say, 5 hours, 4.5 of those hours will be in the game, and only half an hour or so in the lobby or in the menus. So if you see someone online and message them, they will almost never be able to reply immediately. And by the time they've finished the game and come out and read your message, you'll be in a game yourself and unable to read their reply. And that's why I never message anyone, even though I now have several dozen people on my friends list. People do message me, though, and it just sucks when I exit a game only to see several messages waiting for me for god knows how much time. I am not the kind of person to take a long time to reply to others, and I feel like the game is forcing me to come off as rude to people. They probably realize why I am taking so long to reply, but still. The whole thing is so uncomfortable. Another option would be to deliver messages to people even when they are in game. If this could be done, then the in-game/in-lobby status wouldn't be absolutely necessary (though it would still be nice to have, of course).
Well, maybe they can add time for the massages? Like what in the IRC of pa stats. I think this may help a little bit.
+1 Time stamps + colour coding would do the trick. Online but not in game or lobby- green Online in lobby- amber Online but in game- red Offline - greyed out as it is now. That clearly tells people what's happeneing and if it's appropriate to contact them or not (or at least if they're likely to reply). Timestamps on messages is another good suggestion.