Preheat the oven to 400°F (200°C).
In a wide nonstick sauté pan over medium heat, add the ground beef. Cook for 7–10 minutes, breaking it apart with a spatula until browned.
Add diced leftover steak and cooked mushrooms (if using) to the pan. Stir to combine.
Add diced onion, thyme leaves, black pepper, and salt. Reduce heat to medium-low and cook for 3 minutes until the onion softens.
Sprinkle in the flour and stir well to cook out the rawness, about 2–3 minutes.
Stir in tomato paste and cook for an additional 2 minutes.
Pour in 1 1/2 cups beef stock and Worcestershire sauce. Stir to combine.
Add mixed vegetables and bring the mixture to a boil.
If using, add leftover gravy to the pan. Reduce heat to a simmer and cook for about 10 minutes, allowing the mixture to thicken. Add more beef stock if needed.
Taste and adjust seasoning as necessary.
Pour the meat mixture into an 8x10-inch ovenproof baking dish.
Spoon the mashed potatoes over the meat mixture. Combine parmesan cheese and chopped parsley, then sprinkle over the mashed potatoes.
Create ridges on the mashed potato surface with a fork for a golden crust.
Place the baking dish on a cookie sheet or tray to catch any overflow. Bake uncovered in the preheated oven for 30 minutes, or until the top is golden brown.
Remove from oven and let rest for 15–20 minutes before serving.