Bring a large pot of salted water to a boil and cook the elbow macaroni according to package directions until just al dente; drain and set aside.
In a saucepan over medium heat, melt 2 tablespoons of the butter. Whisk in the flour and cook for 1–2 minutes to form a roux without browning.
Slowly whisk in the milk and cream until smooth. Add dry mustard, salt, and pepper and cook, whisking, until the sauce thickens and coats the back of a spoon, about 4–6 minutes.
Remove the sauce from heat and stir in the shredded cheeses until melted and smooth. Taste and adjust seasoning if needed.
Combine the drained macaroni with the cheese sauce in the pot or a large bowl, stirring until evenly coated.
If you prefer a baked top, transfer the macaroni and cheese to a greased baking dish, dot with remaining 2 tablespoons butter, sprinkle with breadcrumbs and extra Parmesan, and bake at 350°F (175°C) for 15–20 minutes until bubbly and lightly browned.
Alternatively, serve straight from the pot while hot.