Heat your oven to broil.
In a large sauce pan melt the butter over low or medium low. As soon as the butter is melted vigorously whisk in the flour until it forms a paste and there are no lumps. Let this bubble and cook, pushing it around with the whisk occasionally until it is a toasty golden brown that smells like pie crust. Remember, it should be brown, not golden, but not burnt.
On low, slowly whisk in the milk to form a creamy sauce. If you add the milk too fast, clumps might form. If this happens, whisk like a mad person. It should come together.
Whisk in the salt, nutmeg, cayenne, hot sauce, and mustard.
Now, slowly and with great patience and much vigorous whisking on LOW heat add the cheese. Do not add more cheese until the last addition is incorporated. If at any point it looks disturbingly thick, you can add a tiny splash of milk and whisk that in, but you shouldn’t need too if the heat is low enough. If your mixture starts to show signs of bubbling, take it off the heat and keep whisking. Moving it back and forth from the burner as needed while you incorporate the cheeses, should take about 20-30 minutes for a full recipe.
Once all the cheese is incorporated and whisked to creamy perfection taste the sauce to ensure it isn’t grainy. If it is, whisk away some more over low heat and taste again. If it’s creamy to your liking remove it from the heat and gently stir in the noodles to completely coat.
Transfer the noodles and every last bit of cheese sauce (a silicone spatula is good for this) to a 13×9″ casserole or other decent sized baking dish, top with mozzarella to cover and broil about 5-6 minutes on the top rack just until the cheese is bubbling with beautiful brown spots. Serve immediately.