The implementation counts high in the abstraction, which makes it needing to add counting in multiple places and some locking is not counted.
Today the missed locking count works due to we only mount continuations in controlled environment. In an uncontrolled environment it can create some issue.
Third, since the counting is not counting every held monitor it cannot be used for other purposes.
For these reason we should push down the counting near the actual locking/unlocking and make sure it is exact.