Caramelize the onions: Heat 2 tablespoons oil in a large skillet over medium heat. Add sliced onions and 1/2 teaspoon salt.
Cook, stirring every few minutes, until soft and golden, 25–35 minutes. If they start to scorch, reduce the heat and add a splash of water. Stir in 1 teaspoon sugar if using.
When deeply caramelized, set aside.
Make the sauce: In a saucepan, warm 2 tablespoons oil or butter over medium heat. Whisk in flour and cook 1 minute. Stir in chili powder, cumin, smoked paprika, garlic powder, and oregano; cook 30 seconds until fragrant.
Gradually whisk in chicken broth, then tomato sauce. Simmer 5–8 minutes until slightly thickened. Season with salt and pepper.
The sauce should be pourable, not pasty.
Prep the filling: In a bowl, combine shredded chicken, half of the caramelized onions, 1/2 cup of the sauce, 1/2 cup cheese, and cilantro. Taste and season with salt and pepper. The mixture should be moist but not watery.
Warm the tortillas: To prevent cracking, wrap tortillas in a damp paper towel and microwave 30–45 seconds, or briefly toast them on a dry skillet over medium heat until pliable.
Assemble: Heat oven to 375°F (190°C).
Spread 1/2 cup sauce in the bottom of a 9x13-inch baking dish. Working one at a time, fill each tortilla with about 1/4 cup chicken mixture, roll snugly, and place seam-side down in the dish.
Sauce and cheese: Pour the remaining sauce evenly over the tortillas. Top with the remaining caramelized onions and sprinkle with the remaining cheese.
Bake: Bake uncovered for 18–22 minutes, until the cheese is melted and the edges are bubbling.
If desired, broil 1–2 minutes to brown the top lightly.
Finish and serve: Let rest 5 minutes. Garnish with extra cilantro. Serve with lime wedges and a dollop of sour cream or Greek yogurt.