Dirty contacts?
I started a new round of tests prior to renting a replacement 90d and sending the problematic one to CPS.
I set up my MFA target and ruler about 40 feet away and ran through settings on every combination of 90d, 5dsR, 600, 300, 1.4x, and 2x. Most required slight changes.
Starting with the 300, the 90d worked properly: it responded to MFA settings at the middle and at extremes as I expected, unlike previous tests with the 600, and it was reasonably repeatable on the proper setting, that is, there were only fractional inch changes around the exact setting and centered on it. The same was true with the 1.4x and 2x and with the 5dsR body.
So, probably not the camera, after all.
Before setting up the 600, I decided that it would be good to give all the contacts on all the parts a mild cleaning with isopropyl alcohol and a cotton swab - 8 sets of them. The swab came away slightly soiled, as expected, the cameras are in the field almost every day, in every kind of weather and the inside of my car is pretty dusty from the gravel roads I travel.
If you're wondering why I haven't done that before now, it's because I have never done it to any of my cameras and lenses in the roughly 30 years that I've been using EOS cameras and EF lenses. Canon may have cleaned them when I sent them in for repair, but I didn't. And, yes, I still have that A2 and a 28-80L lens from 1991 (and a couple of beat-up F1s that date to some time in the '70s) among other things not worth enough to offer for sale.
Back to the target with the 600, the 90d performed as it did with the 300, moving the center of focus back and forth as I changed from +20 to -20 and then set it to the proper adjustment, where it has stayed and variations are as described above.
However, I have not had a chance to test it at longer distances where most of the errors became problematic, causing many discarded images.
We'll see tomorrow, I hope, if I get out for some tests and maybe even real interesting birds.
Thanks for all your attention and comments, I'll keep you posted.