So, I dug into and debugged the SpriteSelector.cs code and I have found that Screen.Width is reporting an incorrect Width value for the size of the window.
This is not reporting the with of the actual sprite selector window screen size.
I found a function that works better, and here's the fix: (I replaced Screen.width with EditorGUIUtility.currentViewWidth and this worked like a charm!)
HOWEVER: I thought Screen.width is 'supposed' to return the width of the current view if it's currently used inside an active GUILayout, so your code 'should' have worked? But it doesn't. Anyway, my fix makes SpriteSelector now function correctly.
Aaron if you have an even more robust fix than mine, please reply and I'll use that instead, otherwise maybe you can just put in this fix and release it as a bug fix?
Thanks!
int screenWidth = (int)EditorGUIUtility.currentViewWidth; //Screen.width;
int columns = Mathf.FloorToInt(screenWidth / padded);
if (columns < 1) columns = 1;