Before starting the sauce, I always like to get all my ingredients ready and organized. Shred the smoked gouda, sharp cheddar, and mozzarella cheeses, reserving one-third of the total cheese for topping. Warm the whole milk slightly, as this helps prevent the roux from clumping later. In a large pot, bring water to a rolling boil, add 1 teaspoon of kosher salt, and cook the short-cut pasta according to package directions until al dente; drain and set aside.
In a large, heavy-bottomed pot, melt the 4 tablespoons of butter over medium heat. Once melted, stir in the granulated garlic, onion powder, mustard powder, black pepper, and red pepper flakes, cooking for about 30 seconds until fragrant. Whisk in the 4 tablespoons of all-purpose flour and cook for another minute, creating a smooth roux. Gradually pour in the warm milk, whisking constantly to ensure there are no lumps; continue to cook, stirring occasionally, until the sauce thickens to your desired consistency, about 4-5 minutes.
Remove the thickened white sauce from the heat to prevent scorching. Add two-thirds of the shredded smoked gouda, sharp cheddar, and mozzarella cheeses to the pot, stirring until beautifully melted and smooth. Season with additional salt and pepper if needed, tasting to achieve the perfect balance. Fold in the cooked pasta until every piece is thoroughly coated with the rich cheese sauce.
In a separate bowl, combine the pulled pork with the barbecue sauce, ensuring the pork is well coated. Preheat your oven to 400°F (200°C). Transfer half of the cheesy pasta mixture to a 9x13 inch baking dish. Layer half of the barbecued pulled pork over the pasta, gently mixing it in. Add the remaining pasta mixture, then top evenly with the remaining pulled pork and the reserved one-third of shredded cheeses. I like to press the top layer down a bit so the cheese melts nicely over everything.
Bake the assembled mac and cheese for 15 minutes, allowing the cheeses to melt and meld. For a beautifully golden and bubbly crust, briefly broil the dish for about 2 minutes; keep a close eye on it to prevent burning. Finally, let the dish cool for 5 minutes before serving, which allows the cheese sauce to set slightly, making for easier, more delicious portions. This resting time is key!