I need to have the Y axis point upwards, and the only sensible way I found to do this is just to set negative scale to it.
viewport.scale = new Point(1, -1);
Apparently this needs to be done to viewport and not the app stage. This effectively rotates everything around the X axis, and my coordinate system is what I wanted. What is happening now though is that zooming, panning and all other mouse interactions stop working - I'm not getting any exceptions, there's simply no reaction to any mouse movements.