Try harder to keep an active primary output for surfaces
Try to avoid situations where a visible surface won't receive frame callbacks. This could happen if it's assigned a primary output that's in the off state, or if the primary output enters the off state after assignment.