Fix message bus recursive dispatch.

The MessageBus continued processing the dispatch message queue when the
subscriber triggered another message to be sent, thus creating strange
situations. One such situation was that TimeEntryModel.GetDraft() method
did not return consistent results because Query() method triggerend
another GetDraft() function call.