Yep, it's difficult to think how to handle impermissible moves gracefully in the general case.
I suppose that one option would be for the game state to diverge for each player, and only after both of them have reached a conclusion could they both be told the move at which that happened.
(and in that case, ensuring that both players reach their respective game's conclusion near the same point-in-time -- hiding the magic trick -- becomes a separate challenge)