So I began debugging this and noticed that no GridNode had a viable connection to another node with HasConnectionInDirection.
This seems really peculiar because they are clearly connected. If I remove that check and do a simple index check against the node found, we create portals correctly and the funneling algorithm behaves MUCH better.
Any thoughts on this? I haven't changed much in my graph settings.