An off-site chat does seem like a bit much, but really it isn't all that big of an inconvenience or extra hassle. The thing would be spreading the word and getting people to actually use it until an on-site chat is ever introduced, if it ever is. The only problem I see with it is people not having the necessary plugin to view it (Firefox is being a butt about that with me, but Google Chrome shows it fine).
Another thing that would be nice to have with an on-site chat would be having the capability to create group chats, like Facebook has or like how Skype allows group calls.
How I picture the chat working, if ever introduced, would be a small bar across the bottom of the screen. In the bottom right corner would be the menu that you can open and close that shows the list of your friends with some indicator showing them as online, offline, and even a connected by mobile if that's possible here. Clicking on the person's username would open a chat with them that would sit along the bar at the bottom of the screen that can also be opened and closed for convenience. By closed I mean minimized so that you just see the person's username along the bar while the actual chat is not taking up space on your screen. Close-closing it would be done with a little x, naturally.
In the menu somewhere, likely at the very top, would be a "Create Group" option in which you can invite several users to one big chat. They will receive a notice in their chat bar showing this invite, and they can choose to accept or deny it. A message in the chat will say "-username- joined the chat" or "-username rejected invite" to show their response. If they joined the chat they will then receive all of the messages that are posted in that chat, and somewhere there will be an option saying "Leave Chat" if they don't want to receive them anymore.
While using the PM systen can work to show if you got messages in the chat while you were offline, some sort of indicator in the chat bar would work as well. Perhaps those chats would be along your chat bar by default when you enter, but minimized, until you open the messages to view them.
If for whatever reason someone doesn't want the chat bar they can remove it in their account preferences. People with chat disabled would show up differently in their friend's menus indicating they can not be messaged this way and a message would pop up saying so as well if they were invited to a group, such as "-username" can not be invited."
Oh, and Nightingale, as for moderators, well, moderating the chats it would be done through the logs I mentioned that would be stored in the tab under My Account. There would need to be some option for users to report a message if it contains rule-breaking content. However, if people were only able to message people they were friends with I don't think there would be much of a problem with that. This could however bring on a new wave of sending friend requests to random users just so people have them in their chat menus. To that, well, people should just be decent and only send them to, I don't know, their actual friends on the site? That's a crazy thought. Or at the very less someone they trusted not to spam them their chat or harrass them.
(In cases of someone messaging you repeatedly that you'd rather not talk to at the moment you could silence them, or block their messages completely. If blocked they wouldn't be able to message you at all but if silenced you would receive their messages without getting the notification in your bar every time.)