PyUnicode_DecodeUTF8Stateful() should save the number of successfully decoded bytes in *consumed. But if all bytes are in the ASCII range, it uses a fast path and does not set *consumed.
It was found during writing coverage tests for Unicode C API (#99593).
Linked PRs