Couldn't that result in something like the following?

1. Will change
1. Will change
1. Did change (no matching `will` call)
1. Did change matching 2, `ignoreNextUpdate` is reset
1. Did change matching 1, value is erroneously forwarded