hang-request-deadline@fault: bug  # DSPy capture ships the complete event synchronously on the caller's forward() thread, so a hung ingest stalls forward past the scenario deadline. python-sdk complete-event hot-path blocking (#6/#16/#32); not wrapper-fixable without async delivery in the core SDK.
retry-429-hot-path@fault: bug  # 429 retry backoff runs on the caller's hot path — step[1] took ~236ms vs max_ms 100. python-sdk complete-event retry blocking (#6/#16/#32); not wrapper-fixable without async delivery in the core SDK.
retry-500-then-200@fault: bug  # 500->200 retry backoff runs on the caller's hot path — step[1] exceeds max_ms 100. Same python-sdk complete-event hot-path blocking as retry-429-hot-path (#6/#16/#32).
retry-after-cap@fault: bug  # Retry-After honoring blocks the caller's forward() thread past the scenario deadline (timeout). Same python-sdk complete-event hot-path blocking (#6/#16/#32).
track-attachments@fault: missing_feature  # A DSPy forward() carries no attachment channel; the driver refuses attachments loudly (exit 4) rather than silently dropping them.
track-single@fault: missing_feature  # DSPy derives properties from the LM only — caller properties (validation_tags) have no channel on forward() and are not honored. (Per-call event name is honored via ctor event_name= since DEV-1167.)
wrap-capture-usage@fault: missing_feature  # DSPy derives token usage from the LM response, not from a caller-supplied usage arg (forward() has no usage channel); the offline DummyLM reports no tokens, so ai.usage.* never populate.
