I have much sympathy for your solution - and I might treat it the same way in the club etc. But I dont think it is legal D 10 is off cause the card to be played. OP says "Declarer called for a heart." Sure!, and "Declarer called for a 10'er." Same logic, but also not a distinct call. BUT. Has dummy played a card, before LHO tables his ♥ 9? OP says "Dummy reaches down to play a heart ..." That for me does not sound like a heart has been played yet, nor placed in a played position. I have the feeling, that you have to accept the TD's ruling for now. And then maybe (possibly) look at Law 73 (about misleading) AFTER the play. Not at all elegant, I agree.