Online/busy/etc. are part of the core standards and very basic functionality. All software has occasional bugs, but I never encountered widespread issues with statuses such as you seem to be describing.
There was a period of time where if someone signed in using the Google+ chat client, they would appear online but wouldn't receive any messages you sent them from the XMPP side. That was entirely a Google implementation thing (they had stopped maintaining XMPP interoperability at that point).