Investigate whether re-encoding MultiIndex levels is beneficial
Follow up for #27495, where we handle the common case of `MultiIndex` being created from helper functions that ensure the levels are sorted. In order to handle the case of `MultiIndex(codes=..., labels=...)` and labels being individually unsorted, we likely need to re-encode that level. If that is performant, it would allow deleting a non-performant base case in `MultiIndex.is_monotonic`