erik Thanks for pointing me in the right direction! I tried the branch and was able to create an ImageManip node to resize the depth frame down to something that will fit within USB2 bandwidth. Now I can have all three of the things in the thread title!
I also just read that StereoDepth nodes have a setOutputSize method that resizes the depth frame, but only when doing RGB-depth alignment. It almost seems to have been made specifically for my kind of use case, though I missed it at first. You can even use it with the main branch.