Heat a dutch oven or heavy bottom stock pot over medium-low heat. Once the dutch oven is hot, add the butter and olive oil. Add the onions. Cook and stir for a few minutes. Cover the pot and cook on medium low heat for 20 minutes, stirring occasionally. The onions will become very soft.
Increase the heat to medium-high. Add the sea salt and sugar. Cook and stir until the onions have caramelized. They should turn brown and be very soft. The volume will also cook down.
Reduce the heat to medium-low. Add the flour and stir. Cook for a few minutes, until it thickens. If it gets too thick you can add a little butter.
Stir in 1 cup of the beef stock. Cook and stir for a few seconds. Add the remaining beef stock, white wine, and optional sage and bay left, if using. Bring to a boil over medium high heat. Reduce the heat to simmer on low for 30 minutes.
Preheat the oven to 325°F. Arrange the baguette slices on a baking sheet and lightly drizzle or brush each side of the bread with some olive oi. Bake for 15 minutes. Turn the bread over and bake for another 15 minutes.
Season the soup with sea salt andn pepper. Remove the optional bay leaf if you used one. Add optional cognac, grated raw oniobn, and a small amount of the Swiss cheese.
Place the toasted bread on top of the souip. Sprinkle with the remaining Swiss cheese and the Parmesan cheese. Drizzle the cheese with a little olive oil, or you can use some melted butter. Place the Dutch oven in a preheated oven, uncovered. Bake for 30 minutes, or until the cheese melts. You can turn on the broiler if you with to brown the cheese.
Remove the soup from the oven and let it cool a bit.
Enjoy!