Cook the lobsters: Bring a large pot with 2 inches of salted water to a boil. Add lobsters, cover, and steam for 8–10 minutes until shells turn bright red.
Transfer to a tray to cool slightly.
Split and remove the meat: Using kitchen shears, split the lobsters lengthwise. Remove tail and claw meat, chop into bite-size pieces, and set aside. Clean the shells, discarding the head sac and any dark veins.
Keep shells for stuffing.
Sauté aromatics: In a large skillet, heat butter and olive oil over medium. Add shallot and a pinch of salt. Cook 2–3 minutes until translucent.
Stir in garlic for 30 seconds, until fragrant.
Deglaze and reduce: Pour in white wine and simmer 2–3 minutes to reduce by half. Add stock and reduce by about one-third. This concentrates flavor.
Build the sauce: Lower the heat.
Stir in heavy cream, Dijon, lemon zest, lemon juice, tarragon, parsley, paprika, and a small pinch of cayenne if using. Simmer gently until slightly thickened and velvety, about 4–6 minutes. Season with salt and pepper.
Add cheese: Stir in 1/2 cup Gruyère or Parmesan until just melted.
The sauce should coat a spoon. If too thick, splash in more stock or cream. If too thin, simmer a bit longer.
Fold in lobster: Add chopped lobster to the sauce.
Warm through gently for 1–2 minutes. Avoid boiling, which can toughen the meat.
Fill the shells: Heat the broiler to high. Arrange lobster shells on a foil-lined baking sheet.
Spoon the mixture into the shells, mounding slightly.
Top and broil: Sprinkle with extra Parmesan and a light dusting of paprika. Add a thin layer of breadcrumbs if you like extra crunch. Broil 2–4 minutes until golden and bubbling.
Watch closely to prevent scorching.
Serve: Rest for 2 minutes. Garnish with parsley and serve with lemon wedges. Pair with crisp white wine and a simple green salad or buttered asparagus.