@LorenzoGatti I do not believe the above is correct. Going with your example, while it is true that A and B overlap on the axes of A, they do not overlap on all the axes of B. The below example illustrates a separating axis, showing that the shapes do not initially intersect.
I think your example neglects to do a test for for the edge normals of B (as well as the edge normals of A). As such, I still believe that my algorithm does work for any convex shape, so long as all the potentially separating axes are checked.