In Godot 4.0, with the new NavigationServer, it should be possible to bake NavigationMeshInstances during runtime with Godot, which should also work with the headless version of Godot. I'm not sure for Godot 3.2+ though, I haven't really done much with the Navigation stuff in Godot.
You can make a NavigationMesh from a Mesh class though! You just need to use the create_from_mesh function in NavigationMesh. It might be a way to allow players to make their own navigation meshes.