Meanwhile, gather and prep all of your French onion sauce ingredients according to the ingredient list above to have ready and organized for use.
Once the meatballs have chilled, place a large cast iron skillet (or other large, oven-safe, heavy bottom pan that can accommodate the meatballs and sauce) over medium-high heat, and add 2 tablespoons of the olive oil.
Once hot, add a batch of meatballs into the pan and allow them to sear and brown on all sides for about 8 to 10 minutes. Place the meatballs onto a tray or sheet pan to hold while you brown the rest of the meatballs.
In the same skillet as you browned the meatballs (which should be on medium-high heat), add another 2 tablespoons of the oil (if there's already enough oil from browning the meatballs, skip the added oil), as well as the ghee or butter.
Once hot and melted, add the onions plus a pinch of salt and pepper, and allow them to cook down and deeply caramelize for about 20 to 25 minutes, stirring frequently, until the onions become very dark, soft and jammy.
Then, stir in the garlic, herbes de Provence and dried thyme, just until aromatic (about 30 seconds). Add in the sherry or wine, and allow it to bubble up and reduce for about 30 seconds.
Sprinkle in the flour and stir that in to incorporate for about 30 seconds, then pour in the beef stock and whisk or vigorously stir to blend in and combine until smooth. Allow the French onion sauce to simmer to 5 minutes, just to tighten it up.
Meanwhile, turn your broiler on 'high'.
Turn the heat off under the sauce, and stir in the fresh thyme leaves. Nestle back into the pan the browned meatballs, and top them with a combination of the Gruyere and mozzarella cheeses. Place under the broiler for about 5 to 7 minutes, or until the cheese becomes nice and gooey and melted.
To serve, sprinkle over the meatballs some additional thyme leaves as garnish, and spoon 3 to 4 meatballs, along with lots of sauce and cheese, into a bowl to enjoy with warm, toasted bread, or over hot mashed potatoes, if desired.