Bring a large pot of generously salted water to a boil and cook the pasta until al dente according to the package directions. Reserve about ½ cup of the pasta water before draining.
Meanwhile, heat the olive oil and vegan butter in a large skillet or Dutch oven over medium-high heat. Add the onions and cook for about 5 minutes until softened.
Stir in the garlic, thyme, and rosemary, then cook for another 30 seconds until fragrant.
Add the mushrooms in batches if necessary so they brown instead of steam. Cook for 10 to 12 minutes, stirring occasionally, until the mushrooms release their moisture and develop deep golden edges.
Season with salt, pepper, smoked paprika, soy sauce, and Dijon mustard. Stir well to coat the mushrooms.
Sprinkle the flour over the mushrooms and stir continuously for about 1 minute until no dry flour remains.
Pour in the white wine, if using, and cook for 2 to 3 minutes until mostly reduced.
Slowly whisk in the vegetable broth, scraping up any browned bits from the bottom of the pan. Stir in the coconut milk (or vegan cream) and nutritional yeast.
Reduce the heat to low and simmer for 8 to 10 minutes, stirring occasionally, until the sauce becomes smooth and thick.
Stir in the lemon juice and chopped parsley. Taste and adjust the seasoning with additional salt and pepper if needed.
Add the cooked pasta directly to the sauce along with a splash of reserved pasta water if needed to loosen the sauce. Toss until every piece of pasta is coated.
Serve immediately with fresh parsley, cracked black pepper, and vegan Parmesan, if desired.