Bring a large pot of salted water to a boil. Cook the elbow macaroni until just al dente, about 1 minute less than the package directs. Drain well and set aside.
Return the empty pot to the stove over medium heat. Melt the butter, then whisk in the flour. Cook, stirring constantly, for 1-2 minutes until lightly golden and fragrant.
Slowly pour in the milk while whisking constantly to prevent lumps. Continue whisking over medium heat until the sauce thickens enough to coat the back of a spoon, 5-7 minutes.
Remove the pot from the heat. Stir in the salt, pepper, nutmeg, Dijon mustard, garlic powder, and cayenne pepper.
Add the shredded cheddar in 2-3 additions, stirring until fully melted before adding more.
Add the drained macaroni back into the pot and toss until evenly coated in the cheese sauce. Serve immediately.