Well, the short answer to your question...
"is there another solution that allows faces to overlap and not exhibit this graphical glitch?"
...is no.
The glitch you are seeing is called z-fighting, and it is essentially impossible to avoid where you have overlapping, coplanar faces.
From Wikipedia:
Z-fighting is a phenomenon in 3D rendering that occurs when two or more primitives have similar values in the z-buffer. It is particularly prevalent with coplanar polygons, where two faces occupy essentially the same space, with neither in front. Affected pixels are rendered with fragments from one polygon or the other arbitrarily, in a manner determined by the precision of the z-buffer.
Basically what is happening is when two coplanar faces occupy the exact same space Blender doesn't know which of the two faces to render. The faces are "fighting" which one is closer to the camera. So due to floating-point calculations in the distance to the camera (z-buffer), various points of the shared surface are rendered as one of the faces, and other parts are rendered as the other face. This results in the strange, undesirable glitch you are witnessing.
So without actually moving one of the fighting faces (which you have excluded) there is no way to eliminate z-fighting.