I am more and more certain that this issue should be solved in core.
I think there must be many answers being lost because the question got closed while the user was answering, and then s/he got the message that the answer was closed... and her/his answer was gone.
---
Can we just add an else to the qa-ajax-answer.php, in the end after:
if ((@$question['basetype']=='Q') && !isset($question['closedbyid'])) { ... }
and throw an error back to the user, so that s/he will see his answer still opened?