Cook the elbow macaroni according to package instructions. Drain and set aside.
In a large skillet, heat olive oil over medium heat. Add shredded chicken and buffalo sauce, and cook until heated through, about 5 minutes. Remove from heat and set aside.
In the same pot used for pasta, melt 2 tablespoons of butter (optional), then whisk in flour and cook for 1-2 minutes to form a roux.
Gradually whisk in the milk and continue to whisk until the mixture thickens, about 5-7 minutes.
Once thickened, remove from heat and stir in 2 cups of shredded cheese, garlic powder, onion powder, salt, and pepper until smooth.
Combine cooked macaroni and buffalo chicken with cheese sauce in a mixing bowl, stirring until well mixed.
Transfer the mixture to a baking dish and sprinkle the remaining shredded cheese on top.
Bake in a preheated oven at 350°F (175°C) for 15-20 minutes, until bubbly and cheese is melted.
Allow to cool slightly, garnish with green onions if using, and serve.