Topology question (square hole in cylinder)
This kind of topology will work fine for a 16 vertex cylinder, a bit more complicated for a 12 vertex cylinder:



There's a trick to avoid pinching with the Shrinkwrap modifier:

Create a cylinder at the exact same place and with the exact same diameter. Hide it.



On your original cylinder, create a vertex group around the square hole.



Give your cylinder a Shrinkwrap modifier with the hidden cylinder as Target and Vertex Group > Choose the group you've created.