Caramelize onions. Melt butter and olive oil in a large skillet over medium-low heat. Add onions and sugar. Cook stirring every 5 to 7 minutes for 35 to 45 minutes until deeply golden and jammy. Add thyme in the last 2 minutes. Season with salt and pepper. Cool to room temperature. Reserve half for the pan sauce.
Make the filling. Combine the cooled caramelized onions (half the batch) with 1 cup grated Gruyère. Set aside.
Preheat oven to 350°F (175°C). Line a 9x5 loaf pan with parchment paper.
Make the panade. Combine breadcrumbs and milk in a small bowl. Let sit 2 minutes.
Mix the meatloaf. Combine ground beef, soaked breadcrumbs, eggs, Worcestershire, garlic powder, onion powder, salt, and pepper. Mix gently until just combined — do not overmix.
Stuff the meatloaf. Press half the meat mixture into the bottom of the loaf pan. Add the filling in the center leaving ½ inch border. Top with remaining meat and press firmly to seal.
Bake uncovered 55 to 65 minutes until internal temperature reaches 160°F.
Make the pan sauce. Return the reserved caramelized onions to the skillet over medium heat. Add beef broth and Worcestershire. Simmer 5 to 7 minutes until slightly reduced. Season to taste.
Add cheese topping. Scatter ½ cup Gruyère over the finished meatloaf. Broil 2 to 3 minutes until melted and golden.
Rest 10 minutes, then slice, pour pan sauce over the top, garnish with fresh thyme and serve.