Preheat the oven to 350 degrees Fahrenheit. Line a baking sheet with parchment paper.
Prep the mushrooms: Remove stems, finely chop them, and set aside. Place mushroom caps on the baking sheet, stem side up, drizzle lightly with olive oil, and season with salt and pepper. Bake for 10 minutes. Drain off any liquid and set aside to cool slightly.
Caramelize the onions: In a large skillet, heat butter and 1 tablespoon olive oil over medium heat. Add the diced onions, season lightly with salt, and cook slowly for 45 to 50 minutes, stirring occasionally. Keep the skillet covered for part of the cooking time to trap moisture. The onions should become deeply golden and jammy.
Add stems and aromatics: Stir in the chopped mushroom stems and cook for 2 minutes until softened. Add the garlic, thyme and saute for another 30 seconds to 1 minute.
Deglaze: Carefully pour in the marsala wine and cook until most of the liquid has evaporated and the mixture is rich and concentrated. Taste and adjust seasoning and remove from heat.
Make the breadcrumb topping: In a small bowl, combine the panko breadcrumbs, Parmesan and parsley. Drizzle with 1 to 2 tablespoons olive oil and toss until lightly coated.
Assemble the mushrooms: Spoon the onion mixture into each mushroom cap. Sprinkle with shredded Gruyère, then top with the breadcrumb-Parmesan mixture.
Bake: Return the mushrooms to the oven and bake for 10-12 minutes, until the cheese is melted and the breadcrumbs are golden. For extra crispness, broil for 1 minute at the end, watching closely.
Serve: Garnish with fresh thyme leaves and an extra sprinkle of Parmesan. Serve warm.