Bring a medium sized pot of water to boil. Add asparagus pieces and cook for 8-10 minutes, until asparagus is tender but still a bright green color. Drain well and let cool.
Add asparagus, garlic, nuts, Parmesan, 2 tablespoons olive oil, and lemon juice to a food processor and puree until smooth, scraping down sides as needed. If the mixture feels too thick, add additional olive oil. Sprinkle with pepper, taste, and adjust seasoning, adding more cheese or lemon juice as needed.
Bring a large pot of heavily salted water to boil for pasta.
Meanwhile in a large saucepan, heat olive oil. Add red onion and cook until softened, about 2 minutes. Add fennel and season with salt and pepper. Cook, stirring occasionally, for about 8 minutes, until fennel has softened and begins to brown.
Add shrimp and cook until pink, about 8 minutes.
Meanwhile, toss pasta into boiling water and cook until al dente. Drain liquid and run under cold water, then toss pasta with pesto, tossing to coat. Serve pasta with fennel and shrimp mixture on top, sprinkled with some freshly ground black pepper and fennel fronds.