Heat oven to 390°F (200°C), or 350°F (180°C) if using a fan.
Make the Béchamel
In a small saucepan, heat milk and cream over medium heat until steaming but not boiling. Set aside.
In a separate saucepan, melt butter on medium heat, then reduce to low. Stir in flour and cook for about 3 minutes, stirring constantly, without browning.
Slowly add half of the hot milk mixture while stirring. Once smooth, add the rest of the milk, nutmeg, salt, and pepper.
Stir until it thickens into a spreadable consistency. Remove from heat.
Assemble Sandwiches
Spread half of the béchamel over the 4 slices of bread. Reserve the rest for topping.
On two slices, layer 2 slices of cheese each, then spread with half the Dijon mustard.
Add ham slices, then spread with the remaining Dijon mustard.
Top with 2 more slices of cheese each and close the sandwiches with the remaining bread.
Pan Fry
Melt butter in a skillet over medium to medium-high heat.
Cook sandwiches for 2 minutes per side, pressing lightly, until golden brown. Transfer to a baking tray.
Bake and Broil
Spread the remaining béchamel over the tops of the sandwiches.
Sprinkle with Gruyere and parmesan.
Bake for 15 minutes. Switch oven to broil for 3 minutes, until the tops are golden and bubbling.