In a large oven-safe skillet, heat the olive oil over medium heat and add the onions, garlic, bay leaves, and salt and cook, stirring frequently, until the onions are deeply golden (about 45 minutes)
Add the thyme and black pepper and cook until the herbs are fragrant, about 1 minute
Add the white wine and butter, scraping up the bottom of the pan to loosen any dark bits
Remove onions from skillet and discard the bay leaves and allow the onions to cool slightly
Rinse and wipe out the skillet and set aside
In a large bowl, combine the ground beef, egg, flour or breadcrumbs, salt, and pepper
Once the onions are cool enough to handle, roughly chop ⅓ of the onions and add them to the meatball mixture
Use your clean hands or meat handling gloves to mix everything together until combined
Divide the mixture up into 12 roughly 1 ½-inch balls and set aside
Heat 2 tablespoons of olive oil in the reserved skillet over medium-high heat
Add the meatballs, making sure to space them evenly, and cook until browned on all sides, 10 to 12 minutes
Sprinkle flour over the meatballs and toss gently until the flour is cooked, about 1 minutes
Add the chicken broth, remaining reserved onions, mustard, and Worcestershire
Stir well, and let simmer until the sauce has thickened and grown slightly darker in color, about 10 minutes
Preheat the broiler on low
Sprinkle the Gruyere over the meatballs and sauce and broil until the cheese is melted, about 2 minutes
Serve with toasted baguette slices or as is. Garnish with more thyme if desired
