Scrape Request Manager
Tracks in-flight scrape requests and assigns results when responses arrive.
Maintains a concurrent map of scrape ID to ScrapeRequestWrapper. When a scrape response (or chunked summary) arrives, the corresponding wrapper is located, populated with ScrapeResults, and marked complete so the waiting HTTP handler can return. Also supports failing individual or bulk requests (e.g., on agent disconnect or chunk validation failure).