As part of #3350, the resolver ought to only fork when there are duplicative packages (as direct dependencies of another package) whose marker expressions have an empty intersection. If the marker expressions have a non-empty intersection, then forking must not happen or else we could wind up with two different versions of the same distribution in the lock file that could be installed simultaneously when the marker environment is in the intersection.