I think it has nothing to do with the frame rate. It only makes the entity describe a different trajectory, so at 20 fps it hits the edge between the two triangles of the plane, something that at 60 fps does not. But, why does it fail when it hits an edge? Who knows... I would bet it is a variable accuracy issue, as Kartoffel stated. 3dgs somehow interpolates the normals of the triangles when it hits an edge. As far as I know, the data has to be tranformed between coordinate systems and there are some small vectors involved that result in the normal vector. Plowed field for imprecision even for floats.

Code:
MATERIAL* mtlWireframe = {
	effect = "
		float4x4 matWorldViewProj;
		
		void VS (in float4 InPos	: POSITION, out float4 OutPos	: POSITION) {
			OutPos = mul(InPos, matWorldViewProj);
		}
		
		float4 PS() : COLOR0 {
			return float4( 1.0f, 1.0f, 0.0f, 1.0f );
		}
		
		technique t0 {
			pass p0 {
				FillMode = Wireframe;
				VertexShader = compile vs_2_0 VS();
				PixelShader  = compile ps_2_0 PS();
			}
		}
	";
}