developer_attribution, connection_capacity_lookup (gas/heat helpers),
competitors, saturation, supply_layers, and pat_lookup swallowed DB errors
without begin_nested()/rollback(), leaving the shared analyze-request
Session aborted for every subsequent db.execute (silently breaking
persist_analysis_run and the forecast enqueue). zone_regulation's
backfill_ekb_zone_regulations gets a plain rollback() since it only ever
runs on its own owned Celery-task session.
Refs #2464 (cluster A session-poisoning).