In a Dutch oven or large heavy pot over low heat, simmer the onions in butter and oil for two hours. Stir frequently, adding sugar and salt after 15 minutes of cooking. I often add additional butter to prevent onions from burning before turning a deep golden-brown color. Sprinkle on the flour and cook for 5 minutes longer. Never allow them to become dark brown. Add Beef broth and wine. And bring to a simmer and Cook, partially covered for about 30 minutes, to allow the flavors to combine. Stir if necessary with a wooden spoon. This is a good time to Correct the seasoning with additional salt and pepper to taste. (Sometimes I’ll add in ¼ cup boiled milk at this time.) Continue to simmer 15 minutes.
Meanwhile, preheat broiler. Arrange bread on a rimmed baking sheet and broil until deep-golden brown on both sides, about 1 to 2 minutes per side, set aside.
Before serving, reheat to boiling. Pour in Cognac. Ladle 1 cup hot soup into four 13-ounce ramekins or ovenproof bowls. Arrange the bowls on a rimmed baking sheet. Place 2 slices of toasted bread over each bowl of soup to cover the surface of the soup completely. Sprinkle 3 ounces grated cheeses over bread in each bowl, and place under the broiler until cheese is melted and crusty brown around the edges. Watch carefully that bread doesn't burn.
Serve immediately.