Errors during price fetching are now logged and stored in an errors list,
allowing users to see error count/warnings in simulation results.
Acceptance Criteria:
- [x] Errors are logged (not silently swallowed)
- [x] User can see error count/warnings in simulation results
- [x] Simulation completes even if some price fetches fail (graceful degradation)