Make the Pesto: Combine all the ingredients in a food processor or blender and blend to make pesto of desired consistency.
Bring a large pot of water to boil. Add the chopped asparagus and cook for 4-5 minutes or until tender. Remove with a slotted spoon into a bowl and run very cold water over it to stop cooking.
Next add pasta to the same water and cook as per package directions. Add peas to water about 2 minutes before the pasta is done cooking. Reserve 1cup of cooking liquid.
In a saucepan, melt 2tbsp butter and 1tbsp olive oil; add the chopped onion and garlic. Cook until garlic is fragrant and onion is translucent. Sprinkle the flour and whisk to make a roux, making sure that there are no lumps.
When the flour turns a light brown color, add the stock and whisk to form a gravy. Cook until the mixture thickens, about 2-3 minutes. Season with salt and pepper
Turn off the heat and add the pesto along with asparagus, green peas and pasta. Add the reserved cooking water, mix well. Check seasonings and adjust accordingly.
Serve hot, warm or at room temperature with grated parmesan cheese if desired.