Add the mushrooms and cook, stirring every now and then until brown, about 5 minutes. Add the onions, garlic and some salt and pepper, and continue to cook until the onions start to get tender, about 4-5 minutes.
While the onions are cooking, bring 2 cups of chicken stock and the milk to a boil in a large sauce pot over medium heat for the polenta.
Add the balsamic vinegar and remaining cup of chicken stock to the skillet with the sausage and mushrooms, scraping up any bits that are stuck to the bottom of the pan. Add the crushed tomatoes, bring up to a simmer and cook for about 5 minutes.
While the sausage, mushrooms and tomatoes are simmering get back to the polenta: Pour polenta in a slow and steady stream into the bubbling milk and chicken stock while whisking constantly. Cook, while still whisking, for about 4-5 minutes or until really thick. Remove from the heat and add 3/4 of the shredded provolone and Asiago cheese, and all of the ricotta cheese, stir to combine.
Butter a 3-quart baking dish and pour about two-thirds of the polenta into the bottom of the dish, spreading it out to cover the entire bottom of the dish. Top the polenta with the sausage and mushroom mixture.
Top with about 12 large dollops of the remaining polenta, dispersing them evenly across the top.
Sprinkle with the remaining provolone and Asiago cheese and dot the top with the butter. Transfer to the oven and bake for 30 minutes. Remove from oven and let stand 5 minutes. Top with the chopped basil and parsley, and serve with a simple mixed greens salad alongside.