Add the olive oil and butter to a large pot over medium heat. Once butter is melted, add the onions and a bit of salt. Toss until coated. Turn the heat down a little and cook until the onions are very soft and caramelized, (about 45 minutes), stirring occasionally.
Once the onions have caramelized (they will be a dark golden brown), add the red wine to the onions, give them a stir and turn the heat up to medium. Let it come to a boil then add the beef stock, duck stock, thyme and rosemary. Give the soup a stir and let come to a boil again. Then turn the heat down to low/medium and let simmer for an hour.
Remove the thyme and the rosemary and season to taste with salt and pepper.
Turn the broiler on. Ladle the onion soup into oven-safe bowls and top with the slices of bread. Put the bowls on a baking sheet and in the oven until the bread is crispy. Then remove from oven and add the cheese. Put back in the oven until the cheese is melted and bubbly.
Sprinkle with fresh thyme and serve immediately.