Peel and chop the potatoes into 1-inch chunks. Transfer the potatoes into a large pot and fill it with water. Bring the water to a boil and cook the potatoes until fork tender -- about 10 minutes.
Drain the potatoes and put them back into the pot. Add 4 tablespoons of butter, 4 oz. cream cheese, ½ cup of Greek yogurt, and 1 teaspoon of salt. Mash the potatoes until mostly smooth. Some chunks are ok. Set aside.
Preheat the oven to 350℉ and spray a 9x13-inch baking dish with cooking spray and set aside.
Heat a large skillet over medium/high heat and add the ground beef and onion. Cook for 5 minutes, and then add the garlic, remaining salt, thyme, paprika, and pepper. Cook for another minute.
To make the roux, add 2 tablespoons of butter and 2 tablespoons of flour to the ground beef skillet. Cook for 1 minute while stirring to make sure the flour fully coats everything in the skillet. Add the milk to the skillet and whisk together. Be sure to scrape the bottom and sides of the skillet to make sure all of the flour has been mixed in. The milk should thicken within 1-2 minutes.
Add 4 oz. cream cheese and the frozen vegetables into the skillet. Mix and cook until the cream cheese is melted.
Transfer the ground beef mixture to the baking dish. Spread the mashed potatoes on top to cover. Bake for 30 minutes uncovered. Top with 1 cup of cheddar cheese and bake for another 15 minutes. Allow 10 minutes to rest before serving.