play cardA -> get countered ->state reset -> play card B -> B gets countered (because your opponent recovers the counter and untapped cards, due to the reset).
State reset isn't the right term. You want something like "Reveal two cards from your hand. Pay the casting cost for one. If it successfully resolves, exile the second card. If it does not, put the second card into play as if it were cast."
As it turns out, that also doesn't work because you can't just put something into play or it would skip some triggers and activate others it wouldn't normally. So the code is statefully different if it's in the "catch" instead of the "try"
wouldn't that make the card useless?
play cardA -> get countered ->state reset -> play card B -> B gets countered (because your opponent recovers the counter and untapped cards, due to the reset).