Your solution is probably a good one, I’ll have to give it a try. If I understand it correctly, you are essentially moving the cell faces to avoid the high ground. I think for most situations this will work fine, but as you observed you may find some with Courant issues, etc. You will still get some strange results when Mapper plots the depths, but I think that is acceptable.
I think your solution deserves a new post. Good work.