cybereality
I was trying to do this and noticed a few things.
I tried just merging all the vertexes into an ArrayMesh and it gave me an error "Vertex amount (2680) must be a multiple of the amount of vertices required by the render primitive (3)." Looking into my mesh it didn't have vertexes that are a multiple of three, and it used INDEXES in the array as well. So I was able to get it to work by also duplicating indexes and incrementing them but I still had the gap problem as I had before.
For MeshDataTool I just don't know what to do with that. It gives you the option to create from a mesh and then also to commit to it, as well as add vertexes and normals. So that's nice but not really adding anything that SurfaceTool or ArrayMesh had already.
I tried to just create a MeshDataTool and then add all my vertexes and normals, but realized there is no way to add indexes. So when I do it I end up with the error above as well, where the number of vertexes need to be multiples of 3.
At this point I'm not sure what to do besides maybe figuring out how to export a mesh that doesn't use indexes or ensuring it exports a multiple of 3.