So the answer to this is to mark the decorators at 3. to abort their current sub-tree when the condition they are watching changes.
Like this:
This way when the Service changes the value of the state, the decorator will re-evaluate and fail. This is actually a really nice pattern because it means you only re-run what you need to.