Preheat oven to 350 degrees. Butter a 9 x 13 inch baking dish. Set aside.
In a large skillet, melt butter on medium-low heat. Whisk in flour and continue whisking until a roux forms - about 3 minutes.
Add milk and continue whisking - about ten minutes.
Once sauce is smooth and thick, remove from heat. Stir in grated cheese. Add garlic powder and 1/2 teaspoon cayenne. The cayenne really gives the dish a kick. If you don't want spice, reduce the amount or eliminate, but seriously, this is a good flavor addition!
Cook pasta noodles to al dente stage. Noodles will continue cooking in the oven, so you want them a little firm. Drain. Return to pot. Pour cheese sauce over and combine thoroughly.
Pour into baking dish, sprinkle with 4 oz cheddar, 1/2 teaspoon cayenne (optional), and breadcrumbs (optional).
Bake uncovered for 30 minutes until edges are brown. Let sit 5 minutes before serving.
Notes
If you are organized, you can cook the noodles while you make your cheese sauce. I do mine in separate stages because I know I'll become distracted and mess the whole thing up. There's a lot of whisking involving.