1. capture_training_graphs had cuStreamSynchronize before begin_capture which hung when stream had stale state from experience collection. 2. Training profile apply_to must apply batch_size so smoketest TOML (batch_size=64) overrides the conservative default (1024). 3. Removed batch_size from dqn-production.toml — GPU profile is authority. 4. Removed all debug eprints. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>