Bring chicken broth to a simmer in a medium-size saucepan. Snap off and discard tough ends of asparagus, letting each stalk break where it is tender. Cut into 1-1/2-inch pieces. Add to simmering broth; cook 3 minutes. Scoop asparagus out into a bowl; reduce heat under broth to medium-low.
In a second medium-size saucepan, melt 2 tablespoons of the butter over medium heat. Add the onion and cook 5 minutes, or until softened. Stir in rice to coat with butter until fragrant and slightly translucent, about 2 minutes.
Add wine and cook for 3 minutes, until almost all the liquid has evaporated. Add 1 small ladleful of warm broth and cook, stirring until broth is absorbed. Continue adding 1 ladleful at a time, until rice begins to swell, and a creamy sauce starts to appear (you should have about 1 cup of broth remaining). Add remaining broth, 1/3 cup at a time, until very creamy.
Taste rice. If it is almost tender, stir in remaining tablespoon butter and lemon zest. If not, add 1/3 to 1/2 cup water and continue to cook another 3 minutes. Add remaining tablespoon butter and zest. Then, add grated Parmesan and asparagus. Heat 1 to 2 minutes. Add a few tablespoons of water if risotto is too thick. Serve warm, with extra cheese.