Don;t be blinded by solutions others have used... I believe 3d textures don't lead anywhere for us.
I've experimented with quite a few variations, including something similar to what you are describing. In my opinion 3D (or fake 3D) textures are the way to go to describe the general shape of the clouds. Complicated noise functions are too slow to evaluate, much slower than a texture fetch.
In the proposed scheme, we have (a bunch of) 2d textures at 50 m resolution which tells us where the clouds are and how dense they are. So we can simply use the parameter that tells us how high to draw the clouds in combination with their density and position to evaluate the shadow rays
I'm already doing that. The base cloud shape is being modulated by a 2D coverage texture/noise function.
clouds aren't 'weird' 3d objects that can have any shape, their opaque core at least has a certain shape that's bulky (no holes in the middle) and getting smaller towards the upper edge, and we can use that information to cast everything into a 2d problem.
I don't think a cloud shape is as simple as that. You need to have some kind of noise function to modulate the density in the height axis.
So all this needs is a number of 2d texture lookups till you exit the layer with the ray (or saturate).
Well, some 2D textures stacked on top of each other make up a 3D texture... In general I think you are trying to optimize something that doesn't need optimization. The current technique runs really fast on a low sample count, and I don't think you'll be able to further decrease the amount of work done per sample, not without compromising how good the clouds look.
I don't have access to the code right now, but I'll post it as soon as possible so you can have a look and see how things are currently done, even though you won't be able to try it out.