Make the soup: In a large saucepan cook the onions in the butter and oil with sugar, salt and pepper to taste over moderately low heat, covered, stirring occasionally, until soft. Uncover and cook over moderate heat, stirring occasionally, until golden brown. Add the flour and cook, stirring, 2 minutes. Add the stock, wine, cheesecloth bag and salt and pepper to taste and cook, partially covered, skimming occasionally, 30 minutes. Season with minced onion and Cognac.
Preheat oven to 350 degrees F. Arrange slices of bread on baking sheet, brush both sides with melted butter and bake, turning once, for 15 minutes, or until golden. Rub with garlic.
Transfer soup to ovenproof bowls and cover with bread slices. Sprinkle with cheeses and drizzle with melted butter. Bake for 15 minutes, or until soup is simmering and cheese has melted. Run under a preheat broiler until cheese is golden.