Here is a solution that will be effective and as simple as possible to implement. Please note that I am not saying it simply, but as simple as possible. This is a difficult problem, as it turned out.
1) Get the polygon data in the USA using Shapefiles or KFL, which will give a set of polygonal shapes (land mass), each of which is determined by a list of vertices.
2) Create a set of rectangular rectangles (AABBs) for the United States: one for Alaska and each Alaskan island, one for each Hawaiian island, one for the continental United States and one for each small island on the coast of the Continental United States (for example, Bald Head Island in NC, Catalina off the coast of California). Each bounding rectangle is defined as a rectangle with angles that are the minimum and maximum latitude and longitude for the shape. I assume that there will be several hundred. For example, for the large island of Hawaii, latitude ranges from 18 ° 55'N to 28 ° 27'N, and longitude is 154 ° 48'W to 178 ° 22'W. Most of your global lat / long pairs are thrown out at this stage, since they are not in any of these several hundred bounding rectangles. For example, your bounding box at 10 ° 20'W, 30 ° 40'N (a spot in the Atlantic Ocean near Las Palmas, Africa) does not block Hawaii because 10 ° 20'W is less than 154 ° 48'W. This the bit will be easy to code in Python.
3) If the lat / long DOES pair overlaps one of several hundred AABB rectangles, you need to test it against one polygon in the AABB rectangle. For this, it is highly recommended to use the Minkowski Difference (MD). Please read this site carefully:
http://www.wildbunny.co.uk/blog/2011/04/20/collision-detection-for-dummies/
In particular, watch the demo of "poly versus poly" halfway down the page and play with it a bit. When you do this, you will see that when you take the MD of two shapes, if this MD contains the origin, then the two shapes overlap. So, all you have to do is take the Minkowski difference from the two polygons, which in itself leads to the appearance of a new polygon (B - A, in the demo), and then see if this polygon contains the origin.
4) There are many documents on the Internet regarding algorithms for implementing MD, but I don’t know if you can read the document and translate it into code. Since this is complex vector math, to take an MD from two polygons (the tested lat / long rectangle and the polygon contained in the bounding box that overlaps the lat / long rectangle), and you told us that your experience level is not high yet, I would suggested using a library that already implements MD, or even better, implements conflict detection.
For example:
http://physics2d.com/content/gjk-algorithm
Here you can see the corresponding pseudocode that you can port to Python:
if aO cross ac > 0
If you cannot transfer this yourself, you may be able to contact one of the authors of the two links that I have included here - both of them have implemented the MD algorithm in Flash, perhaps you could license the source code.
5) Finally, assuming you have processed collision detection, you can simply store a boolean in the database as to whether the lat / long pair is part of the United States. After that, I have no doubt that you can do what you want using your part of Google Maps.
So, to summarize, the only difficult task here is to either 1) implement the GJK collision detection algorithm, or, alternatively, 2) write an algorithm that first calculates the Minkowski difference between your lat / long pair and the ground polygon contained in your AABB, and then secondly, see if this MD polygon contains the origin. If you use this approach, Ray Casting (a typical point-in-polygon solution) will do the trick with the second part.
Hope this gives you a start in the right direction!