The function eFunc returns None outside a curve. At the edge of the curve, the Plot3D plot has spikes. These are spurious: They are not there in the function. And in fact, the spikes change location depending on the range of y!!! I instrumented eFunc to record (in "record") the result of every call to eFunc. As you see in demo.nb, there are no values in any of the calls to eFunc that give a value corresponding to the spikes.
And then ListPlot3D@record produces the desired plot without the spikes.
Sigh. I think that when "working" with Mathematica, I spend half of my time dealing with stuff that is obscure, badly documented, doesn't match the documentation, or (in this case) just doesn't work right.
I don't think I'm asking for help ... the only "help" I would want would be for the Mathematica staff to jump up and send me a corrected Plot3D.
Oh: I'm running 12.2 on Windows 10. At the moment, I'm facing more or less East.