I've done some tests with Zylann's HeightMap Plugin and a mesh from Blender. In the tests I've used:
- Blender mesh created from a SHP file, using Blender GIS. The mesh is 16 x 16 km.
- Heightmap (4096 x 4096 pixels PNG) for Zylann's plugin, created in QGIS, using TIN interpolation, from the same SHP imported into Blender. The terrain was 4096 x 4096 m, scaled in Godot to 16 x 16 km.
Observing a few debugging monitor values, the values were about:
- Blender mesh: ~5 million vertices drawn, 50-100 draw calls, 60 FPS
and 40 MB of static memory.
- Zylann's plugin terrain: 200k to 500k
vertices drawn, 180-220 draw calls, 60 FPS, 190 MB of static memory.
So, althought the Blender mesh had an order of magnitude more vertices, it generated less draw calls and less memory usage.
And the performance was actually the same in terms of FPS.
The only reason I'm not using Zylann's plugin is that I've had issues with the terrain collider, I've seen kinematic bodies and rigid bodies sometimes intersecting with the terrain for almost 1 meter (considering 1 Godot unit = 1 meter).
Screenshots from the tests:
The Blender Mesh:
Zylann's plugin terrain (notice the player floating, and, with the shader type Classic4, the terrain doesn't looks good).
Considering you talked about caves and overhangs, you should take a look at Zylann's voxel terrain module, maybe it's what your are looking for.