I have been testing out variations on this theme and, so far, a good approach seems to be: once an away message has been displayed in a query window, further away messages are hidden for the next sixty seconds. This allows you to send multiple messages without seeing umpteen away messages. If a message arrives from the user, the hide timer is reset to sixty seconds again. This seems like a reasonable balance between not filling the query window with away messages and not under-reporting the server's away state for the user.

If no query window is open, away messages are displayed normally for every message you send.

How does that sound?