Cut a hole in a cylindrical subsurf without losing overall shape? I'm working on a model that is based on a cylinder and I have given it shape using a bevel and a subsurf modifier:

Based on the edited low-poly cylinder structure:

I want to cut some holes on the offset at the top of the cylinder which I made using an inset face and extruding the result, I have tried making the holes by making some inset faces on both sides of the extrusion, cutting the faces, and bridging the openings on the low-poly mesh and then applying bevel weight to keep the shape of the hole but this makes the section of the subsurf come forward due to the new geometry:

I have also tried adding a boolean modifier after subsurf but this breaks the topology and the smoothness:

This looks the closest to what I want to do, but the resulting normals would cause trouble when trying to use the model on software like Substance Painter to generate mesh maps for a low-poly version.
Is there some way to make the holes in a non-destructive way while keeping the cylinder's surface plain and smooth?
you can use 3 modifiers like this: