Bring a very large pot of water to a boil (see Notes). Add a handful of salt.
Heat oven to 400℉.
Separately, in a large pot, melt the butter. Add the flour and once bubbly, cook a minute to make a roux.
Add the pasta to the boiling water. Stir to ensure pasta doesn't sink and stick to the bottom. Cook to al dente according to package directions.
While pasta is cooking, whisk in the milk to the roux. Cook until the milk starts to steam, stirring constantly. Occasionally, also stir the pasta again to ensure it doesn't stick to the bottom of the pot.
Once the milk starts to steam, add the Dijon, salt, and cheeses. Stir until cheese is at least half melted and the mixture thickens a bit. Turn off the heat.
Add additional milk to adjust for consistency (~2 cups). This will ensure the mixture stays creamy while cooking and serving because the pasta will thicken it further. You want the sauce to be the consistency of hearty soup: not thin broth and not thick chowder, but in between. Like a bechamel.
Taste for seasoning! This is KEY. You want to taste SALT at this point. If you don't, your mac and cheese will be bland once the pasta is added.