2 tablespoons unsalted butter
1 tablespoon olive oil
2 large yellow onions (see Tip), thinly sliced
Kosher salt (such as Diamond Crystal) and freshly ground black pepper
2 garlic cloves, minced
1 teaspoon fresh thyme leaves
2 teaspoons Worcestershire sauce
¼ cup dry white wine
5 to 6 cups broth (beef recommended for deeper flavor, chicken for a lighter profile; vegetable broth also works)
1 pound mezzi rigatoni or regular rigatoni
½ cup heavy cream
1 cup shredded Gruyère cheese (about 5 ounces)
½ cup finely grated Parmesan cheese (about 2 ounces), plus more for serving (optional)
Caramelize the onions: In a large Dutch oven or wide, heavy-bottomed pot, heat the butter and olive oil over medium-low. Add the onions and cook, stirring every few minutes, until deeply browned, soft and jammy, about 45 minutes.
Once the onions are caramelized, add ¾ teaspoon salt, several grinds of black pepper, the garlic, thyme and Worcestershire sauce and cook until fragrant, about 30 seconds.
Deglaze the pot: Pour in the white wine and cook, scraping up any browned bits from the bottom of the pot, until mostly reduced, about 30 seconds.
Cook the pasta: Add the rigatoni to the pot, then pour in enough broth to just cover the pasta. Bring to a boil, then reduce the heat to medium and cook uncovered, stirring every 1 to 2 minutes, until the pasta is just tender and the liquid has thickened into a sauce, 15 to 18 minutes depending on the brand and thickness of the pasta. If the liquid reduces too quickly (before the pasta is tender), add more broth, if you didn’t use it all, a splash at a time.
Finish the pasta: Lower the heat and stir in the heavy cream. Add the onions.
Remove the pot from the heat. Add the Gruyère a small handful at a time, stirring until fully melted and smooth before adding more. Once the Gruyère is fully incorporated, stir in the Parmesan until the sauce is glossy and coats the pasta evenly. Taste and adjust seasoning with additional salt and pepper if needed.
Let rest for 5 to 7 minutes before serving to allow the sauce to tighten. Serve warm, with extra Parmesan if desired.