Expand the DQN hyperopt parameter space from 31D to 38D by adding 7 GPU
composite reward weights (w_dsr, w_pnl, w_dd, w_idle, dd_threshold,
loss_aversion, time_decay_rate) at indices 31-37.
- Remove hold_penalty_weight from DQNParams (replaced by w_idle)
- Add #[serde(default)] for backward compat with old JSON results
- Phase Fast fixes reward weights to defaults (not searched)
- Wire reward weights from DQNParams → DQNHyperparameters in train_with_params
- Fix all tests: 134 hyperopt + 7 ensemble + 5 JSON export tests pass
- Fix stale 40D ensemble tests → 38D layout (were already broken pre-change)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>