Typestate-Enforced Agent Loops: Making Policy Gates Unskippable at Compile Time | Synapse