Slice chicken breasts in half lengthwise. Pound each cutlet between 2 pieces of plastic wrap with a flat mallet to ¼-inch thick. Season chicken cutlets on both sides with salt and pepper.
In a large cast iron skillet over medium-high heat melt 1 tablespoon butter and 1 tablespoon olive oil. Add chicken cutlets cook for 3-4 minutes on each side, until golden brown and cooked through. Remove chicken to a pie plate and cover loosely with foil.
Add 2 tablespoons butter and 1 tablespoon olive oil to the same skillet. Add sliced mushrooms, cook for 4-5 minutes until tender. Add diced onion, cook for 3 minutes. Add minced garlic and 2 tablespoons chopped parsley; season with salt and pepper. Cook for another 2 minutes then remove from heat. Remove mushroom mixture to the same pie plate with chicken.
Add Madeira wine to the same skillet, scraping up any bits from the bottom of the pan. Bring to a boil, reduce heat, simmer until wine is reduced by half about 5 minutes. Add the beef broth, bring to a boil, reduce heat, simmer until the sauce is reduced by half about 10 minutes. Reduce heat to medium, add a ½ cup cream, simmer until the sauce thickens about 2 minutes. Season with salt and pepper to taste.
While the sauce is reducing, blanch the asparagus. Fill a large pot or skillet with 6 cups of water. Bring to a boil and add 1 teaspoon salt. Add asparagus cook uncovered for 3-5 minutes until crisp-tender and bright green; remove from hot water to a paper towel-lined plate, loosely cover with foil.
Once the sauce has reduced, add chicken back to the skillet. Top each cutlet with a slice of mozzarella cheese. Broil in the oven for 1-2 minutes just until the cheese begins to melt. Remove from the oven, top chicken with mushroom mixture and asparagus. Garnish with chopped parsley and freshly grated Parmesan cheese. Serve with mashed potatoes or rice if desired.