Which is effectively violated by your H, that conditionally simulates
its input.
This conditional is equivalent to that global state.
The fact that you are trying to establish that ONE input could be
correctly detected doesn't show that the rule works for ALL inputs.
A proper condition for showing X/Y have infinite recursion requires
criteria on BOTH X and Y.
Changine X from calling to simulating isn't isomorphic unless the
simulation is UNCONDITIONAL, and that doesn't includes simulates until
..., only actual unconditional simulation.
Any "conditions" on the simulation become equivalent state passed from
invocations of X to its indirectly called X, which you are trying to
prohibit, because it shows the "trick" your H is trying to use.
Your H wants to presume the H it sees is somehow different then itself,
but it can't be and be the proof case.