I think another option to consider would be running your own overpass server with a local copy of the data subsets you want, then using something like python's osmnx to do "native" queries.
osmnx looks like a cool library, I haven't seen that one before!
As for self hosting overpass, I have considered it, but the installation steps seemed a bit tedious to me compared to a lot of tools which are dockerized.