So this is a solution I found to be working (please correct me if I am wrong):
class NetBase(nn.Module):

    def __init__(self, model, num_classes):
        super().__init__()

        self.features = nn.ModuleList(model.children())[:-1]
        self.fc = nn.Linear(512, num_classes)

    def forward(self, x):
        output = self.features(x)
        output = self.fc(output)

        return output


class NetMerged(nn.Module):

    def __init__(self, model1, model2):
        super().__init__()

        self.features = model1.features
        self.fc = model2.fc


    def forward(self, x):
        output = self.features(x)
        output = self.fc(output)

        return output

The idea is to load both models into an object of a new class and to redefine the forward function so that it passes through features of one model and the classifier of another.
I’ve used the num_classes parameter for testing purposes, if one would create two models with different number of output classes by combining them and printing the model it should be possible to verify that indeed the classifier of another model is used with the feature extractor of the original one:
mBase1 = NetBase(m1, 10)
mBase2 = NetBase(m2, 20)

mMerged = NetMerged(mBase1, mBase2)
print(mMerged)