Accepted answer

Seems that there isn't much of an answer to be made, so:

As pointed by SLaks the issue has been known for a long time but has never been fixed in the .NET Framework despite all the new releases (.Net 4.6.1 as of now) -

The only way to avoid this problem is to not return the Int32.MinValue from CompareTo implementations.

But as pointed by usr .Net Core has this issue fixed -

Related Articles