Pat the salmon dry. Season both sides with salt and pepper, then drizzle with 1 tablespoon olive oil and the lemon juice. Cut a pocket about three-quarters of the way through the side of each fillet without cutting all the way through.
Combine the cream cheese, spinach, Parmesan, and garlic in a bowl. Season to taste with salt and pepper. Fill each salmon pocket with 1 to 2 tablespoons of the spinach mixture.
Heat the butter and remaining tablespoon of olive oil in a skillet over medium-high heat. Add the salmon and cook for 6 to 7 minutes, until golden.
Carefully turn the fillets and cook for another 6 to 7 minutes, or until the center is opaque and the salmon flakes easily. Cover for the final 2 to 3 minutes if needed. Transfer to a warm plate.
For the optional sauce, melt the butter in the skillet drippings. Add the garlic and lemon juice and sauté for about 30 seconds, until fragrant. Spoon over the salmon.
Meanwhile, preheat a grill to medium heat, about 350°F to 400°F. Toss the asparagus with olive oil, kosher salt, and pepper.
Arrange the asparagus perpendicular to the grill grates. Grill with the lid closed for 6 to 10 minutes, turning occasionally, until crisp-tender. Serve with the stuffed salmon and lemon wedges.
Oven option: Bake the stuffed salmon in a lightly greased dish at 350°F (175°C) for 10 to 15 minutes, until opaque in the center and cooked through.