Although you are technically right and this does not solve NavMesh in generated levels I though it would be useful for the OP to see how the generation is made by the UE4 team.
My point being, you should NOT need to check if a point is reachable in your generated level using the NavMesh. You should generate your level so that each room is reachable by definition not randomly generating it and then buteforcing every point of interest. Think of your tiles and rooms as a jigsaw puzzle - the entrances to the rooms are your “tabs” and “blanks” and you should not place a tile that will cover the last remaining entrance.
There are quite a lot of maze generating algorithms that can be applied to level generation and it’s kind of a creative process to write a nice level generator.
As for the movement:
I believe the A* is used to determine your unit’s movement radius in the grid space and generate the waypoints. I’m sure they use MoveTo() however I don’t know if bUsePathfinding set to true.
There is probably a way to generate the NavMesh at after the level generation but I’ll have to check that later.