Step 1Combine the shrimp shells, wine and 1 thyme sprig or 1/2 teaspoon dried in a saucepan. Cover with water and bring to a boil. Simmer uncovered for 15 minutes. Strain the stock and measure 1/4 cup.
Step 2Cook the asparagus uncovered in a saucepan of boiling salted water until not quite crisp-tender, about 2 or 3 minutes. Drain the pieces, reserving the liquid, rinse them with cold water and drain well. Measure 1/4 cup cooking liquid.
Step 3Heat 1 or 2 tablespoons of olive oil and 1 tablespoon of butter in a large heavy skillet over medium-high heat until sizzling. Add the shrimp, salt and pepper and cook, tossing often, for 1 1/2 minutes. Add the garlic and cook, stirring, until the shrimp turn pink and are just cooked through, about 1 minute; when you cut one at its thickest part, it should be white inside. Spoon the shrimp into a bowl.
Step 4Wipe the skillet clean, then heat 1 tablespoon of oil and 1 tablespoon of butter in the skillet over medium-low heat. Add the asparagus, salt and pepper to taste and cook, stirring, for 1 minute. With a slotted spoon, transfer the asparagus to the bowl.
Step 5Pour the measured shrimp stock and asparagus liquid into the skillet. Boil, stirring often, until the liquid is reduced to about 1/3 cup, 1 minute. Add the tomatoes, remaining tablespoon of butter, parsley, remaining thyme and cayenne to taste, if using. Return the shrimp and asparagus to the pan and toss over medium-low heat until heated through. Taste and adjust seasoning. Serve hot, with lemon wedges.