Caramelize the onions
In a large frying pan over medium heat, melt the butter with 1 tablespoon of the oil. Add the onions and sauté until golden, 4–5 minutes. Reduce the heat to low, cover, and cook, stirring occasionally, for 15 minutes. Uncover, add the sugar and ½ teaspoon salt, and cook, stirring occasionally, until the onions are deeply browned, about 25 minutes. Add the flour and stir for 2–3 minutes.
Simmer the soup
In another saucepan, bring the broth and wine to a boil. Slowly stir in the onions. Add 1 teaspoon pepper. Reduce the heat to medium, cover partially, and simmer for about 45 minutes.
Finish the soup
Meanwhile, preheat the broiler (grill). Place the bread slices on a baking sheet, drizzle with the remaining 3 tablespoons oil, and toast, turning once, until golden, 3–4 minutes on each side. Rub the bread with the cut sides of the garlic. Reduce the oven temperature to 400°F(200°C). Place 6–8 ovenproof bowls on a baking sheet. Ladle the soup into the bowls. Top each with 2 slices of toast and sprinkle with the cheese. Bake until the cheese is golden brown, about 15 minutes. Remove from the oven and serve.