You know, after looking more at the latest video you posted (slopes demonstration) I had an idea:
Rather than having a slope assigned to a sector, why not have the opposite, where you assign any surface (ceiling/floor) from any sector to a slope (a simple 3D vector) this way you could easily duplicate a slope if you use regular geometry on your map and would allow to replace the need for a "copy floor/ceiling plane" thing.
boris wrote:So after trying out some options it looks like somehow interacting with the existing undo/redo process doesn't seem to be viable

I guess I'll go with a dummy sector the user has to configure, where all the required info is stored in custom UDMF fields. Not the nicest solution, but better than not being able to undo/redo.
[edit] While writing this post I got the idea that using a "real" dummy sector (i.e. without lines, invisible to the user) might work. Gotta play around with that.
I'm not sure if the data you are referring to is for slopes but if it is the case then all you should really need to do is store a slope's coordinates and its assigned surfaces in a map's .dbs file.
Also, not being able to use undo/redo isn't such a big deal (concerning slopes that is) since the input it needs isn't as big (just two coordinates and a surface).
The reason I was thinking about this video is that I stumbled on a case where this could be very useful yet again.
Looking forward to try out the sloping additions you made (you should update your .dll to include it).