Preheat oven to 400°F (204°C). Spray generously a 13x9x3-inch baking dish with a nonstick cooking spray; set aside.
In a large pot, add 1 tablespoon of butter and 1 tablespoon of olive oil. Stir in mushrooms (1 pound), 3/4 teaspoons of salt, and 1/2 teaspoon black pepper then cook over medium-high heat until the mushrooms are golden brown and the liquid has evaporated.
Add 2 tablespoons of butter to the pot and stir in the onion (1 large), garlic (1 tablespoon), and thyme (1 tablespoon) then continue to cook until the onions are translucent, about 6-8 minutes. Stir in wine (1/2 cup) and cook until it evaporates about 2 minutes. Transfer the mushroom mixture to the bowl.
Add 3 more tablespoons of the remaining butter to the same stockpot with the heat on medium-low. Sprinkle the flour (1/3 cup) over melted butter and whisk constantly for 1-2 minutes to remove the flour taste. Remove from heat and slowly whisk in milk (4 cups), heavy cream (1 cup), and broth (1 cup) until smooth.
Stir in nutmeg (1/8 teaspoon), remaining 2 teaspoons salt, and remaining 3/4 teaspoons black pepper. Turn up the heat to high and bring it to a boil. Immediately reduce to a simmer and continue to cook, whisking often, until the sauce thickens about 8-10 minutes.
Cook the linguine (12 ounces) according to package instructions, in well-salted water (2 tablespoons salt), until al dente. Drain well.
Add the cooked ham and onion mixture and drained linguine to the sauce along with the peas (3/4 cup), and parsley (1/4 cup). Mix well until the sauce coats the pasta and the mixture is well blended.
Place the baking dish on a rimmed baking sheet. Pour mixture into prepared baking dish. Top with cheese (2 cups) and dot with butter and bake in the preheated oven, uncovered, for about 25 minutes or until heated through and golden brown on the top.
Sprinkle top with parsley (2-3 tablespoons) and Panko crumbs (2 tablespoons) to garnish and serve.