Thanks for the workaround, Alexey. An alternative that avoids private code is to define the following on the component class. Note, this will not work when defined on a mixin.

Code:
// True if the component is publishing state
publishingState: false,


lookupViewModel: function(skipThis) {
   if (this.publishingState) {
      return this.callParent([true]);
   }


   return this.callParent(arguments);
},


publishState: function(property, value) {
   this.publishingState = true;
   this.callParent(arguments);
   this.publishingState = false;
}