A solution could be to make the thm-qed-done state a stack of booleans: At the start of a proof, push false. When showing the qed symbol, set the last entry to true. At the end of a proof, remove the last entry and show the qed symbol if the removed entry was false.
If you nest multiple proofs, only the innermost ones get a qed symbol.
A solution could be to make the
thm-qed-done
state a stack of booleans: At the start of a proof, pushfalse
. When showing the qed symbol, set the last entry totrue
. At the end of a proof, remove the last entry and show the qed symbol if the removed entry wasfalse
.(That also seems to be what latex does.)