Take another look. There are no results even closely consistent with a resolution higher than 512ppr.
Ok, I'm looking at the file again, the one attached to message #32.
I see five sections that say the encoder was set to 2048, 48, 96, 96, 48 ppr. Perhaps those last 2 are mis-labeled? The data certainly seems to be for 512 and 1024 ppr.
So, looking at the last section, I see this:
Encoder stopping...
encoder1Pos=1024
encoder1ACount=545
encoder1BCount=540
M1Distance=1024
AMT100.read()=1024
SHAFT TURNED 1/4 REVOLUTIONS
This seems to be pretty "closely consistent". The Encoder library counted 1024. Your pulse counting code saw 545 and 540 pulses. The fact they they are not equal or within 1 count should be an indication something is not perfect with those 2 counts. But assuming 545 is right, that's about 6% more than the 512 which should have occurred (your code counts both rising and falling edge, so it's 2X ppr and should ideally be half Encoder's count). Any slight backwards motion or noise on the signals could easily explain that 6% difference, since simple pulse counting always increments where true quadrature decoding accumulates the net distance.
There are plenty of other discrepancies in the file, which just don't make any sense to me. For example, in the first part for 2048 ppr tests:
Encoder stopping...
encoder1Pos=2048
encoder1ACount=1078
encoder1BCount=1076
M1Distance=2048
AMT100.read()=2048
SHAFT TURNED ~3/8 REVOLUTIONS
If the shaft actually turned 3/8 rev, the simple pulse counts should have seen 1536 rising/falling edges. Of course, the Encoder library should have counted 3072. Neither lines up with the claim the shaft turned 135 degrees. However, the simple pulse counts are very close to half Encoder's count. Again, they're slightly higher, which would be expected if the signals indicate slight reverse motion or noise causing spurious edges at any point.
The data from the Encoder library and both your pulse accumulators strongly suggests the shaft did not actually turn 3/8 rev. Or if it did, the other 1/8th rev occurred after this data was printed (see below reading these methodology). Or if the motion truly was 3/8 rev, the CUI encoder sent signals that both techniques saw as indicating about 1/4 rev. I have absolutely no way of knowing what truly happened.... all I can do is look at the data you published and try to guess. Remember, you specifically asked me to review at this data again.
In nearly all your tests (except the first one), your pulse counts are slightly higher than half the Encoder library count, which is exactly the expected behavior. In the cases where Encoder does not agree with your notes about the actual motion, the simple pulse counts also do not agree, but they do track Encoder's count.
Another issue that makes me feel very uncertain about this data is way you are testing. Your code is printing numbers only when the Encoder library count reaches a threshold, and then you reset the count. This methodology is not good (aside from the fact you're using Encoder's count as the threshold, when you believe the Encoder library is faulty). If you intend to turn the shaft 90 degrees, but the actual motion is 112 degrees, your program prints one result as you pass the point where the Encoder library reports a specific count. But when you stop turning, you get no indication of the count from Encoder or your pulse accumulators. You should be printing the results continuously (as I suggested earlier). Resetting the counts is also not good. If you continue turning, positions such as 360 degrees are easy to see. If you were continuously printing the count, you could stop when the shaft is back at the starting point and note the total count for 1 rev. Then you could continue turning and note the count for 2 revs, 3 revs, and so on.
Even though I resolved not to look at this further until the CUI encoder arrives next week, yet again I've spent about 20-30 minutes looking at this and writing another detailed message. I still do not know what's really wrong here. These test results do have many inconsistencies, but their most consistent feature is the accumulators are usually slightly more than half Encoder's quadrature count, which is a pretty good indication both techniques are working as intended and the signals contain either a small amount of noise/chatter or backwards motion. This behavior seems consistent at every setting.
Somehow you're convinced the Encoder library is not working, but I can not see how you are reaching that conclusion?