How to make sharp triangle hole using subdivision surface modifier?
I think this could be a good start :



Another thing would be to do as much as you can from a bevel modifier with angle detection, weights and/or vertex groups. It has the advantage of being non-destructive and faster.