Procedural Perlin Noise Cave System Help

I want to achieve a perlin noise based cave system that has optimal performance and is voxel based. I’ve attempted to generate a perlin noise cave and it was successful however, issues began to arise by thinking of the actual game I want to place the system in. First of all it was not very performant on the server during generation and took a really long time when generating bigger maps. It wasn’t performant on the client and frame drops were common, which I eventually fixed by introducing greedy meshing. The cave itself was not procedural meaning when the player reached the end of the map there would be nothing more. And the list goes on and on.

I found a great topic on an infinite mining system which I want my perlin noise cave system to be based off so that it is infinite. However with this system in place, i cannot exactly wrap my head around how I would generate large sprawling caves to explore which is where I need help with the theory behind it.

Games like Mining Tech do this almost perfectly but instead of caves being rare I want my version to have them as the main focus.

My attempt at a perlin noise cave system with greedy meshing:

So in a nutshell I need help designing a perlin noise system based off the game Mining Tech that is performant with procedural caves being the main focus.