I can’t tell if the functions you have are generating gradient noise or not. You are over my head, in terms of writing your own implementation. I’ve always used the Gustafson implementation. We also have an implementation available on JGO, which should be searchable or in the wiki area.
I have some suggestions, just based on what I am seeing.
It seems to me you might be doing some sort of “clamping” to the data, to keep it within bounds. Yes, I see it on line 73-78.
I think you will get a more rounded look if the values that you generate are set up so that they never need clamping. Whenever you clamp, you are going to get plateau effects.
Secondly, the target image looks very much to me like something generated with a single octave of Perlin Simplex noise. You are using six octaves of whatever it is you have implemented, as far as I can tell. The higher octaves are going to add a lot of business and jitter to the images.