Boil the pasta. Bring a large pot of salted water to a boil. Add 12 ounces of pasta and cook until just al dente, 1 to 2 minutes shy of package directions.
Reserve 1/2 cup of the starchy pasta water, then drain.
Start the sauce base. In the same pot over medium heat, melt 3 tablespoons of butter. Sprinkle in 2 tablespoons of flour and whisk for 1 minute until smooth and foamy, not browned.
Add the milk gradually. Slowly whisk in 2 cups of milk, a little at a time, until the mixture is smooth. Keep whisking and cook 3 to 5 minutes until it gently bubbles and thickens enough to coat the back of a spoon.
Season it. Stir in 1/2 teaspoon garlic powder, 1/2 teaspoon mustard (Dijon or 1/4 teaspoon dry), 1/4 teaspoon paprika, 1/2 teaspoon salt, and a few grinds of black pepper.
Taste and adjust.
Lower the heat and add cheese. Reduce heat to low. Add 2 to 2 1/2 cups of shredded cheese by the handful, whisking until melted and smooth. If it’s too thick, whisk in a splash of pasta water or a bit more milk.
Combine with pasta. Add the drained pasta back to the pot and fold to coat every nook and curve.
If the sauce tightens, loosen with more pasta water, 1 tablespoon at a time, until creamy and glossy.
Brighten. Stir in a small splash of hot sauce or a squeeze of lemon if you like, just enough to lift the flavors (optional).
Serve right away. Top with a little extra cheese, black pepper, or paprika. Enjoy while it’s hot and velvety.