Boolean Difference Acts like Boolean Intersect I don't get what I'm doing wrong.
I'm subtracting a simple cylinder from a larger cylindrical object to hollow it out.
I've done this dozens of times in this same scene with other objects (Piston 1 worked fine) and had no problems.
For some reason, on two of these objects (Pistons 3 and 4), taking the difference acts as if it's taking the intersection instead.

Piston 2 - My cylinder-like object.
My simple cylinder to subtract from 1.
I select Piston 2.
I select Boolean.
I select Difference.
I select the simple cylinder.
I get an object that appears to be the intersection of the two.

It doesn't matter if I select apply or not; I still get this intersected object.
This is exactly the same procedure I've done dozens of times right here on other virtually identical objects.
I've retried this a dozen times, each time trying something different and double-checking every step.
I even restarted Blender and opened the original untouched file to be sure it wasn't some glitch.
The only thing I can think of now is to scrap my carefully constructed object and rebuild it from scratch.
A little more experimentation after getting over being stumped, and I have found the answer.
It was indeed the overlap of surfaces. If two surfaces of two objects are exactly aligned, boolean operations can result in ... unexpected behaviour.
I moved the subtraction object by .01m and it worked fine after that.