Prep the oven and pan: Preheat your oven to 375°F (190°C). Grease a 9x13-inch baking dish. If using bread, toast cubes on a sheet pan for 8–10 minutes until lightly crisp.
Caramelize the onions: Heat butter and olive oil in a large skillet over medium heat.
Add onions and 1/2 teaspoon salt. Cook, stirring every few minutes, until deep golden and jammy, 25–35 minutes. If they start to burn, lower the heat and add a splash of water to deglaze.
Cook the beef: Push onions to one side.
Add ground beef to the empty side and season with remaining salt and pepper. Cook until browned, breaking it up as it cooks, 5–7 minutes. Drain excess fat if needed.
Add flavor: Stir in garlic, thyme, and Worcestershire.
Cook 1 minute until fragrant.
Make a quick gravy: Sprinkle flour over the beef and onions. Stir to coat and cook for 1 minute. Slowly pour in beef broth, stirring until thickened and glossy, 2–3 minutes.
Taste and adjust seasoning. For a creamier sauce, stir in sour cream.
Assemble the casserole: If using noodles, fold them into the beef-onion mixture. If using bread cubes, spread half in the baking dish, top with half the beef-onion mixture, then half the cheese.
Repeat layers.
Bake: Cover loosely with foil and bake for 15 minutes. Uncover and bake another 10–12 minutes, until the cheese is melted and bubbling and the top is lightly browned.
Finish and serve: Let rest 5–10 minutes. Garnish with parsley.
Serve with a green salad or steamed vegetables.