I see CompareFunc takes majority of the time, suggesting that it's re-sorting the widget list based on depth, which happens when you either alter the depth of some widget(s) or enable/disable them.
And in regards to BetterList, as I mentioned it was created to reduce memory allocation / garbage collection (back in Unity 3.3 days). If the performance differs now, and better results can be achieved by using a regular list, then I don't mind changing it. If you want to try it yourself, just global replace BetterList with List.