Heat a large cast-iron skillet over medium-low heat. Add olive oil and butter to the skillet. Once the butter has melted, add the onion rounds in a single layer and tuck the whole sprigs of rosemary and thyme into the skillet. Season the onion with salt and pepper and let cook, undisturbed, until the onion is caramelized and golden brown on the bottom, 10 to 15 minutes.
Using a small offset spatula, carefully flip, being careful to keep the onions in one piece, season with salt and pepper again, and cook until there’s a caramelized layer on the other side, 10 to 15 minutes. Should you have a few layers of onion slip around a bit, no matter. Just tuck them in their round as best you can.
Add wine and beef broth, and cook until the liquid has reduced and is thick and syrupy, 8 to 10 minutes. Remove skillet from heat and let onions cool completely.
In a small bowl, toss the Gruyère and Parmigiano cheeses together with the chopped thyme and rosemary.
Line a rimmed baking sheet with parchment paper. On a well-floured surface, roll the dough out into a large circle 1/4- to 1/8-inch (6 to 3 mm) thick and 10- to 12-inches (25 to 30 cm) in diameter. Transfer dough to the prepared baking sheet.
Sprinkle cheese mixture on dough, leaving about a 2-inch (5-cm) border. Gently arrange the onion rounds over the cheese mixture in a single layer. Spoon the syrupy pan juices over the onions.
Fold the sides of the dough up and over the edge of the filling, overlapping it onto itself to create a pleated pattern. Freeze the galette on the baking sheet for 30 minutes.
Meanwhile, preheat oven to 400°F (204°C).
Brush the sides of the dough with beaten egg, and sprinkle with flaky salt. Bake until the crust is golden brown and the filling is bubbling, 30 to 35 minutes. Cool the galette for a few minutes before serving.