1) online
2) offline
3) away
4) do not disturb
Two firsts are easy to explain/use and nothing is here to improve.
But 3 & 4 types (away,dnd) need improvements. Here they are:
----------
Away status: there is /afk command in game but its effect is the same as /sit. I think players should be able to use this command in this way:
/afk <text message, for example: reason of being away>
Then if someone is whispering me she/he will get this <text message> info in return.
Also there should be available /autoaway command with parameter/number - example of use
/autoaway 1
If autoaway mode is set, player should enter "away mode" in X minutes of not responding (not moving, not using skills, not typing words, etc), where X is the number used after /autoaway command. If X=0 then autoaway mode will be turned off. If someone is whispering me she/he should get message I entered autoaway mode "some time ago".

Also /afk command should set me automatically in away mode - now I am typing /afk, then going to friend list to set away mode "again" - not very useful...
----------
Do Not Disturb status IS good - it informs my friends that I am busy doing something. Problem is they cant whisper me (and they could have very important info for me at the moment). Solution is one additional "busy" status - which will be the same as this one, DND but this time my friends SHOULD BE ABLE to whisper me with any important info they have, and they will know I am busy but I can read this info and answer them as soon as possible later.
Yes, I could set "away" status now for this.. but "away" suggests I am afk. "Busy" status will tell my friends I AM in game, just busy, for example: fighting, at the moment

So in the end there should be 5 statuses: online, offline, away, busy, do not disturb

----------
EDIT: added last note to away status
