Running a million requests against the Overpass API will get you blocked. Don't do it. The project gives away its data for free, but we have to pay for servers like everyone else does, and checking your one million coordinates for you is not an appropriate use of our server resources.
Also, Nominatim (the geocoder) seems like a much better match for your problem than Overpass, though the same usage restrictions apply.
What you should be doing is setting up your own database, and then querying that. Most likely you'll want to set up a local Nominatim instance, though if you're not interested for in administrative entities and really just want the name of the nearest road, a simplified `osm2pgsql` import and some SQL queries might also be an option. If you set up your own database locally, you'll save a lot of time in network round-trips alone, and you don't compete against other users of the system. If your coordinates are all in the same region or country, you don't even have to load a world-wide data set which will speed up things even further.