Melt the butter with olive oil in a large skillet over medium heat. Add the sliced onions and cook, stirring often, until they turn deep golden brown. Remove half the onions and set them aside for the gravy.
In a mixing bowl, combine the ground beef, breadcrumbs, egg, thyme, parsley, salt, pepper, and the remaining caramelized onions. Mix just until evenly blended.
Place the meat mixture on a sheet of parchment and pat it into a rectangle about 1/2 inch thick. Roll it up from one long side, pressing gently to seal, then transfer the roll seam-side down to a baking sheet.
Bake at 375°F for 40 minutes until the internal temperature reaches 160°F. Let the roll rest while you finish the gravy.
Return the skillet to medium heat and add the mushrooms to the reserved onions. Cook until the mushrooms soften. Sprinkle in the flour and stir for one minute, then slowly whisk in the beef broth. Simmer until the gravy thickens. Season with salt and pepper.
Slice the rested meatloaf roll and serve with the mushroom onion gravy spooned over the top.