Bring a large pot of salted water to a boil, add the pasta, and then follow package directions, but cook 1 minute less than the package calls for. Drain.
Meanwhile, make the creamy cheese sauce. Melt the butter in a large, high-sided pot or Dutch oven over medium heat.
Sprinkle the flour over the melted butter and whisk it into the butter (it will be thick). Continue to whisk until it smells toasted and looks light brown, 1 to 2 minutes.
While whisking, pour in a third of the warm milk. Whisk until smooth (it will thicken), then whisk in another third until smooth, and finally whisk in the rest.
Continue to cook, constantly whisking until the sauce begins to simmer and thickens. The sauce only thickens after it has reached a simmer.
Turn the heat to low then stir in the cream cheese. When the cream cheese is mostly melted into the sauce, stir in the cheddar a handful at a time, until it melts into the sauce. Season with salt and black pepper. If the flavor does not pop, add a bit more salt.
Stir in the cooked pasta. It will look like there is too much sauce, don’t worry. The pasta absorbs the extra moisture as it sits.
Take the pot off the heat, then cover with a lid. Leave for 5 minutes, stir once more, and then serve.
