Cook pasta according to package instructions, draining and rinsing as necessary. Reserve 1/2 cup pasta water.
While the pasta is cooking, heat 1 tablespoon of the oil in a large skillet over medium-high heat. Sprinkle salmon evenly with salt and pepper. Add salmon to skillet and cook 4 to 5 minutes per side, until a thermometer inserted in the thickest portion of filet registers 145 degrees F. Remove from heat, transfer to a sheet of foil and wrap to keep warm, set aside. Flake salmon into large chunks.
Heat remaining oil in a large skillet over medium heat. Add asparagus, shallots and 1/2 teaspoon of the salt. Cook, stirring occasionally, until asparagus is tender and onions are translucent, 8 to 10 minutes. Add garlic and stir for one minute. Add wine and deglaze the pan, stirring occasionally, until liquid is partially reduced, about 1 minute.
Add stock, 1/4 cup of the reserved cooking water and cream cheese. Bring mixture to a simmer, stirring to melt the cream cheese, then let sit, undisturbed for 1 minute. Stir in cooked pasta, Parmesan, heavy cream, lemon zest, lemon juice and parsley. Remove from heat, add cooking water 1 tablespoon at a time until pasta is well coated and desired consistency is reached. Cover to keep warm.
Divide pasta mixture evenly between bowls and top with salmon pieces. Drizzle with additional olive oil before serving, if desired.