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.

// 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.publishingState = false;