I got a good lead on the issue! Looks like between the Slimport knockoff cable I have, and the monitors I'm using which have never been quite on point, unexpected data is being sent to the phone and thrown out.
However, on a much smaller resolution device (my television), the phone outputs video just fine! That rules out the phone as broken overall. I'd like to think that it can handle higher resolutions out of the box, but I haven't seen any specific numbers for what slimport is expected to output- and it definitely looks like the automatic switch to windowed mode and several zoom presets (like the font on tabs and menus) don't set correctly if you use the ut-tweak tool to force windowed mode.
My C isn't great, so reading and understanding Kernel code is going to take some time. To help speed up the process, I could use tips on debugging the Android/cyanogen kernel that comes with 16.04 if anyone has them (Do people attach debuggers to the kernel? Can I boot a custom kernel with extra ERR messages written in easily?). If possible, I'd like to try to fix things as I find them broken rather than avoid problems, but I'm a python programmer and good with devops, not yet C/C++!
As an aside, I also ordered a SlimPort branded dongle, in the case that the one I bought (a cheap third party brand) isn't up to the task of higher resolution monitors. I'll report back with info as I get it.