In a skillet, bring 2 inches of water to a boil, season generously with salt, then blanch the asparagus for 2–3 minutes until bright green and just tender. Transfer to ice water to stop the cooking, drain, and set aside. Wipe the skillet dry.
Slice chicken in half horizontally, pound to ¼-inch thick, and season with ½ teaspoon of salt and ¼ teaspoon of black pepper.
Heat 2 tablespoons of butter and 2 tablespoons of oil in the skillet over medium-high heat. Sear the chicken over medium-high heat for 4–5 minutes per side until golden and nearly cooked through. Work in batches and add oil as needed.
In the same skillet, melt 2 tablespoons of butter and sauté shallots and mushrooms over medium heat until golden, about 4 minutes. Add garlic for 30 seconds, then stir in flour and cook 2 minutes to remove the raw taste.
Pour in the Madeira wine, scrape up browned bits, and simmer over medium-high heat for 5 minutes to reduce and enhance the flavor.
Pour in the beef stock and simmer uncovered for about 15 minutes, until reduced by ¼ and the sauce is smooth and velvety.
Add chicken and asparagus to the skillet, spoon sauce over top, and place mozzarella on each cutlet. Broil for 3 minutes or bake at 400°F for 7–8 minutes until cheese is bubbly and golden—or cover and melt on low for 2–3 minutes on the stove.