What snapping technique to scale edges out to be exactly upright in this case?
While this is no general answer to how to solve the snapping problem and might not work for more complex shapes, in this particular instance I think it's easier to not rely on scaling but instead use Loop Cut and Slide, cut exactly at the bottom and then manually move the added edge loop upwards. For the upwards translation you could use exact numbers or vertex snapping (while restricting the movement to the Z axis) to end up at the height of your existing loop.