I took a look at Stockfish source code, and as far as I can tell it's doing exactly what I suggested: lazy selection sort, see this line:
https://github.com/official-stockfish/S ... k.cpp#L136
If 5% of the entire run time is spent on sorting alone -- not move gen, not scoring, just pure sort -- then in my experience that doesn't sound right. Have you checked how much it takes in your engine? In my post I kindly suggested trying lazy sort. If implemented right I think that would benefit here.