Hi Rich,
Here you go, this file works.
I think there's often a general misunderstanding on how to approach/using constraints and the conditions which should be met in order to use those.
What I did in this file is first create an inverted crater to test your displacement function on. I computed this crater terrain first with a compute terrain node.
The compute terrain calculates the normals, which allow me to restrict for slope. It also calculates texture coordinates which allow me to restrict for altitude.
A compute normal node doesn't compute texture coordinates and a Tex coords from XYZ node doesn't calculate normals.
So in a nutshell, these are the most important things to consider before applying restriction for slope and/or altitude: you first need to calculate normals and/or texture coordinates.
After computing the crater shader I applied your neg displacement. You don't need the merge shader, this would also make it unnecessarily complicated.
I fed the output of the displacement shader as a child-function of the distribution shader. This distribution shader now controls the slope and height-restrictions.
As you can see I changed the values to fit my crater. Just experiment a bit with it to see that it works and then port this to your project.
A small side note is that I didn't expect a powerfractal to work as input for a Voronoi 3D diff scalar, but it seems it does

Normally I would use a "get position from texture" for the input and use a constant scalar (or a powerfractal may be, though I never did that) as seed input.
I hope things are a bit more clear now.
Cheers,
Martin