When overriding every property on a type, the system has O(n^2) behavior.
This probably means that MethodOverrideFactory.GetOrCreateOverride should have an O(1) way to find whether there already is an existing override for the given method. Relevant code (in RelatedMethodFinder.GetOverride):
Where overrideCandidates := AddedMethods.
Using a dictionary for the AddedMethods is actually more expensive than the look-up optimization would help.