Fill a large pot with water and bring it to a boil. Add a generous pinch of salt and the elbow macaroni. Cook according to package instructions until al dente, usually about 7 to 8 minutes. Drain the pasta in a colander and set aside.
In a medium saucepan, melt the butter over medium heat. Once melted, whisk in the flour to create a roux. Continue whisking for about 2 minutes until the mixture is golden and slightly bubbling—this cooks out the raw flour taste.
Gradually pour in the milk while whisking continuously to avoid lumps. Add the garlic powder, onion powder, mustard powder, salt, and pepper. Stir constantly until the sauce thickens, about 5 to 7 minutes.
Lower the heat and stir in the shredded sharp cheddar and mozzarella cheeses, reserving a small handful of cheddar for topping if you like. Mix until the cheese is completely melted and the sauce is smooth.
Add the cooked elbow macaroni and crumbled turkey bacon into the cheese sauce. Stir gently to coat every noodle evenly.
In a small pan, heat the olive oil over medium heat. Add the breadcrumbs and toast them until golden brown and crisp, about 3 to 5 minutes, stirring frequently to prevent burning.
Transfer the mac and cheese mixture to a greased baking dish. Sprinkle the toasted breadcrumbs on top along with the reserved cheddar cheese if using. Bake in a preheated oven at 350°F (175°C) for 20 minutes or until bubbly and golden on top.