You probably need more topology, like this (use a Shrinkwrap to make it stick to a cylinder shape):
The pinching is almost not noticeable:
If you want a better result I guess you need to add more topology:
The result you have is correct but the subdivision surface modifier doesn't have the geometry to make it look nice. You could try marking the edges of the holes as creases with SHIFT E. Then the subdivision surface will know where the edges are.
The geometry is too tight and the bevel overlaps.
Making the ridge manually might be easier.
Add a line where you need the ridge to be
Move it up
Start by adding inner edges in your mesh Vertex > New Face (F).
Use triangles if needed.
Then select the inner edges and subdivide.
More complex cases may need manual correction.
The Knife Project tool is an alternative to the boolean. You must constrain the 3D View to an orthographic camera angle in order to get it to work. Think of it as using a light beam which is aligned to your current viewing angle, which then casts a shadow of one object onto another object, to create cuts at all the points of intersection between the two ...