In a large dutch oven, over medium heat, fry the bacon until most of the fat has rendered. Do not drain the grease.
Add the ground beef, salt, and pepper. Sauté until the beef is mostly browned.
Add the onion and sauté for 4-5 minutes.
Add the tomato paste and cook for 2-3 minutes.
Add the garlic, italian seasoning, and flour. Sauté for 2-3 minutes.
Deglaze the pan with the red wine, scraping any bits off the bottom.
Add the beef broth and worcestershire. Bring a light boil and then reduce the heat to low so the mixture is simmering, stirring occasionally while the potatoes cook.
In a large pot, add the potatoes. Cover them with water and add a few generous pinches of salt. Cover and heat over high until the water boils. Reduce the heat if needed and continue to boil for about 15 minutes or until the potatoes are fork tender. Drain the water.
While the potatoes cook, add the half and half, cheese, sour cream, butter, salt, and pepper to a microwave safe bowl. Microwave in 30 second intervals, stirring after each interval, until the cheese is mostly melted. Set aside. Preheat the oven 375 degrees.
Mash the potatoes using a ricer, mixer, or masher. Stir in the warmed cheese mixture. Set aside.
Once the meat mixture has thickened and most of the liquid has reduced, stir in the peas, carrots, and corn. Turn off the heat. Spread into an even layer.
Spoon the mashed potatoes gently on top of the meat.
Carefully spread them into an even layer using an offset spatula, trying not to mix the meat and the potatoes.
Using a fork, draw squiggles across the surface of the potatoes.
Combine the melted butter and parmesan in a small bowl. Spoon on top of potatoes. Optional: Sprinkle some flaky salt on top.
Bake for about 20-25 minutes or until the edges begin to bubble. Broil for 1-2 minutes, watching closely to brown the top if desired. Let rest for at least 10 minutes before serving.