In a medium saucepan over medium heat, melt the butter until it's lightly brown and nutty smelling. Add flour and cook, whisking constantly, until smooth, about 30 seconds. Whisk in the milk and bring the mixture to a boil, then reduce the heat to medium-low and simmer until slightly thickened, about 5 to 6 minutes. Add 1/4 cup of the grated Gruyère and all of the Parmesan, and whisk until smooth. Season with salt, pepper, and nutmeg.
Preheat oven to broil setting. Place English muffins - cut side up - on a large baking sheet. Spread 1/2 a tablespoon of mustard onto each piece. Top 4 of the halves with 2 slices ham and the sprinkle with the remaining Gruyère, aiming to pile the cheese in the center of the muffin so it doesn't fall onto the baking sheet. Place the baking sheet under the broiler until the cheese begins to melt, about 1–2 minutes.
Top with remaining muffin slices, then pour a generous amount of béchamel on top of each muffin and broil until the cheese sauce is bubbling and evenly browned, about 4 minutes.
In the meantime, cook your eggs! Heat olive oil in a large nonstick skillet over medium heat. Add eggs, season with salt and pepper, and cook until whites are firm but yolks are still runny; about 3 minutes. Place an egg on top of each sandwich, and serve right away!