Serial fetches (no connection reuse) measured ~650ms/tile, almost all TCP+TLS handshake — a real bbox at z0..15 is tens of thousands of tiles, so this was hours for a modest region. Now: 16 worker threads share a queue (I/O-bound, so the GVL doesn't get in the way), each keeping its own persistent connection across every tile it fetches. Measured live against the real Terrarium source: ~40ms/tile, ~16x faster. write_terrarium_mbtiles's SQLite writes and progress updates stay on one thread (draining a results Queue the workers feed), so nothing needed its own locking beyond the two Queues themselves.