I got rid of the exception on `stackDepth`, opting instead for a check before decrementing because I discovered there are situations where only `-didChangeValueForKey:` gets called, for example when using `NSKeyValueObservingOptionInitial`.