Melt 2 tablespoons butter in a large stockpot over medium-high heat. Add mushrooms and sauté for 5-6 minutes until softened and browned. Transfer mushrooms with a slotted spoon to a separate plate, and set aside.
Add the remaining 2 tablespoons butter to the stockpot, along with the carrot and onion. Sauté for 5 minutes, stirring occasionally, until the onion is softened and translucent. Add the garlic, and sauté for 1 more minute, stirring occasionally, until fragrant. Stir in the flour until completely combined, then cook for 1 more minute, stirring occasionally.
Add about half of the Marsala wine, and give the mixture a good stir, using a wooden spoon to scrape up any of those delicious brown bits that have stuck to the bottom of the pan. Add the remaining wine, chicken stock, shredded chicken, thyme, and stir to combine. Continue cooking until the soup reaches a simmer.
Then reduce heat to medium and stir in the dry pasta. Continue cooking for 8-10 minutes, stirring occasionally, until the pasta is al dente. Stir in the cooked mushrooms, cream and baby spinach until they are completely combined, and the spinach begins to wilt. Then taste the soup, and season with a few generous pinches of salt and pepper, as needed. Remove the thyme sprigs.
Serve warm, garnished with lots of Parmesan and a squeeze of fresh lemon.