Se você pode assumir que um polígono é sempre uma região de outro (completamente contido por ele), você pode, em vez de usar o polígono inteiro para a região, apenas calcular o ponto central dele e usar um ponto ou um quadrado muito pequeno em esse ponto para testar contra os pais. Se você tiver uma caixa delimitadora, o ponto central deve ser fácil de encontrar.
Dessa forma, você evita os problemas que está vendo com arestas que se sobrepõem a dois pais, e isso deve funcionar para qualquer região, desde que você saiba que a região está dentro de seu pai e não apenas sobreposta.
Portanto, talvez você nem precise de duas consultas, apenas reduza state.Geometry a um pequeno quadrado em torno de seu ponto central e faça uma consulta com isso.