use session to allow connection reuse

I believe so: requests docs list "Thread-Safe" as a feature (implying all of requests is) and connection reuse is actually via urllib3's PoolManager, which explicitly says to increase pool limits when "using such a pool in a multithreaded environment" implying it is an intended use-case.