The order of the modifiers. When you put the solidify modifier before the boolean it creates an Ngon on the “cut face”. You need to put the solidify after the boolean, that way you do not create the Ngon (which will not subdivide well)
I also used a simple squashed cube for the boolean cutting object (your shape was subdivided and creating unwanted verts on the boolean-ed edge). It is best to keep objects you use for boolean as simple as possible.
I usually put the mirror modifier first as well, (not sure if that was important though)