Heat the olive oil and butter in a large pot over medium heat. Add the sliced onions with a pinch of salt and pepper. Cook, stirring occasionally, for 30–35 minutes until deeply caramelized and golden brown.
Add the garlic, red pepper flakes, Worcestershire sauce, and soy sauce. Cook for 30 seconds until fragrant.
Pour in the water (or broth) and half of the evaporated milk. Whisk the cornstarch into the remaining milk and stir it into the pot. Add the bouillon, oregano, paprika, thyme, parsley, and black pepper. Bring to a boil.
Add the pasta and reduce to a steady simmer. Cook uncovered for 20–25 minutes, stirring frequently, until the pasta is tender and the sauce thickens. Add more liquid if needed.
Remove from heat and stir in the Gruyère cheese a little at a time until melted, then add the Parmesan. Taste and adjust seasoning.
Garnish with fresh parsley and serve warm.