> For deciding if a user is in Texas you could create a simple polygon completely inside Texas and one in Oklahoma.
This seems like the obvious optimized v1: create extremely compressed (simplified) polygons wholly within the proper geopolitical borders. You get 100% true positives for a significant fraction of queries, and any negatives you can still kick to GMaps. I understand wholly-local is the goal here, but as others have pointed out, even small error rates can be unacceptable in some scenarios.
Yes, just paying for the between spots is exactly what I thought later in the day. Then check every month which areas cause costs and add those to the in-house polygons.