Problem with internal facet (MeshFunction) in adaptive solution

Your sketched non-elegant solution is the only solution as far as I can tell. Note that in general the plus and minus restriction is not consistent, see: Integrating over an interior surface for more details. In your case it doesn’t matter as the boundary condition on each side ends up being the same.