First, I think you may have typoed this statement.

Ooops, yeah, fixed.

Say Q(x) represents a game state like x, but with Quarry's effect applied. I(x) represents a game state like x, but with the effects of Inheriting Village applied. G is a game state where everything is as printed.

If you evaluate Q(I(G)), you get $0 Estates. If you evaluate I(Q(G)), you get $2 Estates. In order to get a consistent result of $0 Estates, you should only ever be picking Q(I(G)) whenever you have to evaluate both of them.

Not so.

Firstly, I'll clarify that I(x) should actually be with the effects of

*player P* Inheriting Village applied.

Q(x) modifies the algorithm for determining card cost, until the Quarry leaves play. It reduces the cost for any card that has Action type.

I(x) modifies (amongst other things) the algorithm for determining card type, until the end of the game. If a card is an Estate and is owned by P, it does have that type if Village has that type.

If you ask the question "what is the cost of card C?", you'll get the same result on Q(I(G)) or I(Q(G)).

That Q(x) and I(x), rather than instantaneously adjusting card costs or types, alter the algorithm by which costs or types will be determined in future, is what I mean by saying the effect is "ongoing".