Bring a large pot of salted water to a boil, add the macaroni, and cook it according to the package directions until just tender, then drain. The pasta should be cooked through but not mushy, since it will soften a little more once it meets the hot sauce.
Melt the butter in a large pot over medium heat, stir in the flour with a silicone spatula, and cook the mixture for 1 to 2 minutes. The roux will look smooth and smell lightly nutty instead of raw, which means it is ready for the dairy.
Pour in the heavy cream and milk in small splashes while stirring constantly until the mixture is smooth. Go slowly here, because patient additions help the sauce stay lump free and keep the roux from thinning out too much.
Bring the sauce to a boil, lower it to a simmer, and stir in the mustard powder, onion powder, salt, pepper, hot sauce, and ½ chicken bouillon cube, optional. The sauce should thicken enough to coat the back of a spoon but still look slightly looser than you expect.
Turn the heat to low, sprinkle in the shredded cheddar a little at a time, and stir until the sauce is fully smooth. Keeping the heat low at this stage helps the cheese melt gently so the sauce stays glossy instead of grainy.
Add the drained macaroni to the pot and stir until every piece is coated, then serve right away. The finished mac and cheese should look creamy and velvety, with sauce that clings to the pasta rather than sitting separately in the pot.