bd015ea7bd
- Groups state, output, and task into DynamicNodeRun\n- Separates iterations by run_id inside dict[str, dict[str, DynamicNodeRun]]\n- Adds fallback for single active run backward compatibility\n- Updates unit tests to verify nested state accesses Change-Id: Ib2c18b56df18cbc2b544c31ba19c86097361d30e