findDiffStart and findDiffEnd just scan the document from one side until they find a difference. If your documents are, say, “abab” and “ab”, both scans will cover the entirety of the second document, so findDiffStart will return 2 and findDiffEnd 0. This is an expected feature of this kind of comparing.
When moving one side to compensate for this, you must make sure to also move the other side by the same amount. This code in prosemirror-view could serve as an example.