Prepare the asparagus stock: Bring the stock to a simmer in a medium saucepan. Add about one-third of the asparagus pieces and cook for 5 minutes until tender. Use an immersion blender to puree the asparagus right in the stock, or transfer to a blender. Keep this mixture warm over low heat.
Blanch the remaining asparagus: Boil the rest of the asparagus pieces in salted water for 2-3 minutes until bright green and crisp-tender. Drain and set aside.
Start the risotto base: Heat olive oil in a large, heavy-bottomed pan over medium heat. Add the diced onion and cook for 3-4 minutes until softened and translucent. Stir in the garlic and cook for another minute.
Toast the rice: Add the Arborio rice to the pan and stir constantly for 2 minutes. The grains should become slightly translucent around the edges and smell nutty.
Add the wine: Pour in the white wine and stir until it's completely absorbed by the rice. This adds wonderful depth of flavor!
Begin adding stock: Add the warm asparagus stock one ladle at a time, stirring frequently. Wait until each addition is almost completely absorbed before adding the next ladle. This process takes about 20-25 minutes total.
Test for doneness: The rice should be creamy and tender but still have a slight bite (al dente) in the center. Taste as you go during the last few minutes of cooking.
Finish the dish: Remove from heat and stir in the butter, Parmesan cheese, blanched asparagus pieces, and lemon zest. Season with salt and pepper to taste. The risotto should be loose and flow slightly when you spoon it onto a plate.
Serve immediately: Garnish with extra Parmesan, fresh herbs, and a drizzle of good olive oil if desired.