You can as you know append spaces to the name to sort your overlay above others - many common Icon Overlays do e.g. Google Drive, Dropbox and Tortoise SVN.
The precedence in sorting is because only the top 15 as sorted are shown - a limitation in Windows since Windows 95! (And still the case today in Windows 10). If you are competing with Google Drive for instance and both your Icon Overlays are in the top 15 you need to return a lower priority number which you do in SharpShell by overriding GetPriority()
. If you both return the same priority perhaps it is the later as sorted that is then shown? Would have to test..
Using _ as others have suggested is not the way to go, it sorts after space.
What you want to do - specify the name programmatically as opposed to editing the registry manually is not provided by SharpShell - I have the same problem so am going to try add an attirbute that does just that, will update this when I do.