This is a classic. Look at the how do I model this sticky thread and you'll see similar things on almost every page. I.e how to keep a cylinder actually round when cutting into it. It's quite simple in this case. Add more edge loops around the cylinder so that it doesn't need those support edges anymore.
:| You don't need 100 edges on the cylinder. Your problem is that you didn't use the cylinder's existing geometry to help with the subdivision. You cut existing edgeloops, deleted the unwanted geo and capped the holes, then started to struggle when you forced supporting geo (orange into a cylindrical shape. The solution is…
I know @perna is an advocate for that way of working and I agree it has it's uses but if you're doing a high poly anyway I really don't think it matters that much ultimately. Sure it shaves a bit off performance off a render for VFX or when baking but it's faster to model and simpler to understand if you just add more geo,…