So it looks like checkAccept does change things - either the ledger or mValidLedgerSeq.

This was a surprise to me - I don't usually expect methods called "check" to have side-effects...  any ideas you have for mitigating this...