Caramelize onions in butter and oil over low heat for 30–40 minutes until golden. Deglaze with broth or wine.
Cook pasta al dente, drain, and set aside.
In saucepan, make roux with butter and flour. Whisk in milk and chicken broth until thickened.
Stir in Dijon, garlic powder, salt, and pepper. Add half the cheeses; stir until smooth.
Combine pasta, chicken, and half the onions with cheese sauce. Transfer to baking dish.
Top with remaining onions and cheeses. Bake at 375°F (190°C) for 20–25 minutes until bubbly.
Broil 2–3 minutes for golden top. Garnish with thyme before serving.