Bring a large pot of salted water to a boil. Add 2 cups of macaroni pasta and cook according to package instructions until al dente. Drain the pasta in a colander and set aside.
In a medium saucepan, melt 3 tablespoons of butter over medium heat. Once melted, whisk in 3 tablespoons of all-purpose flour to form a roux. Keep whisking for about 1-2 minutes until it turns lightly golden and has a nutty aroma.
Gradually pour in 1 cup of milk while whisking continuously to avoid lumps. Add 1/2 teaspoon garlic powder, 1/2 teaspoon onion powder, 1/2 teaspoon paprika, 1/4 teaspoon salt, and 1/4 teaspoon black pepper. Continue to cook, whisking frequently, until the sauce thickens and coats the back of a spoon.
Remove the saucepan from heat and stir in 1 cup shredded cheddar cheese until melted and smooth. Then fold in 1 cup barbecue sauce, mixing until fully combined.
In a large bowl or directly in the pot, combine the cooked macaroni pasta with 2 cups cooked and shredded chicken. Pour the cheese and barbecue sauce mixture over the top and stir gently until everything is evenly coated.
Transfer the mixture to a baking dish if you want to bake it, or keep it in the pot for stovetop serving. Sprinkle 1 cup crispy fried onions evenly over the top.
For a bubbly, golden topping, bake the assembled dish in a preheated oven at 350°F (175°C) for 15-20 minutes. If you prefer, serve immediately with the crispy onions added fresh for maximum crunch.