Fill a large pot with salted water and bring to a boil. Cook pasta according to package directions until al dente, typically 8-10 minutes. Reserve ½ cup of pasta water before draining.
Season chicken pieces with salt and pepper. Heat 1 tablespoon olive oil in a large skillet over medium-high heat. Add chicken and cook for 5-7 minutes until golden brown and cooked through (internal temperature of 165°F). Transfer to a plate and cover to keep warm.
In the same skillet, add the remaining tablespoon of olive oil. Add onions and sauté for 2 minutes until translucent. Add mushrooms and cook for 5 minutes until they release their moisture and begin to brown. Add garlic and cook for one minute until fragrant.
Add asparagus pieces to the skillet and cook for 3 minutes until bright green but still crisp. Pour in chicken broth and use a wooden spoon to scrape up any browned bits from the pan bottom.
Reduce heat to medium-low and add heavy cream, Italian herbs, and red pepper flakes if using. Simmer for 3-4 minutes until slightly thickened. Stir in Parmesan cheese until melted and smooth. If the sauce seems too thick, add reserved pasta water, one tablespoon at a time.
Return chicken to the skillet, add drained pasta, and toss everything together. Add fresh lemon juice and adjust seasoning with salt and pepper. Garnish with chopped parsley and additional Parmesan cheese before serving.