The name Ready empty describes a tick's outcome, not the state of a folder, and the system reacts the same way to both; the daemon meanwhile ran on old code because nobody restarted it after the fix.
What I did
Worked out that “empty queue” is the name of a tick’s outcome, not the state of a folder: Ready held 111 tasks and not one could be taken, but the system treats that as emptiness — it goes off promoting drafts instead of finding out why everything is blocked.
The daemon kept shutting down on a fault we had fixed the day before; it was running the code it started with, and a restart was all it needed.
What the factory did
Found that a renamed epic freed its name for a new one, so a reference written before the rename still resolves, only it points at a different epic; of 28 live citations four are broken and sixteen need the surrounding sentence read.