How to Make It
Melt the butter in a large saucepan. Add the onions and cook over moderately high heat, stirring frequently, until softened and starting to brown, about 15 minutes. Add 2 tablespoons of the Madeira, reduce the heat to moderate and cook until evaporated. Continue adding a total of 1/2 cup of the Madeira, 2 tablespoons at a time, stirring often and cooking until evaporated before adding more, about 15 minutes. Continue cooking the onions, stirring, until deep brown, about 10 minutes more.
Add the chicken and beef stocks to the saucepan and bring to a rolling boil. Reduce the heat to low and simmer until the soup is flavorful and the onions are tender, about 1 hour. Season with salt and pepper and stir in the balsamic vinegar and remaining 2 tablespoons of Madeira.
Preheat the broiler. Arrange 6 ovenproof bowls on a baking sheet. Divide the soup among the bowls, top each with a bread slice and cover the bread with the cheese. Broil for 1 to 2 minutes, until the cheese is golden and bubbling. Garnish the soup with the scallions and serve.