You know, *you know,* this is one of the things that Ubuntu Core Desktop solves
Also you can do it with NixOS if you write a script that builds two separate profiles for the two DEs every time you upgrade.
Alas, both of these examples solve it by only having one of the desktops present in a running system at a time, so it's not a solution, per se.