Trim the asparagus, discarding tough ends. Cut the tips from one bunch of asparagus; set aside. Cut the remaining asparagus into 1 1/2-inch lengths.
Prepare an ice bath; set aside. Bring a small pot of water to a boil. Add a large pinch of salt and the asparagus tips. Blanch for 2 minutes. Use a slotted spoon to transfer to ice bath until cool. Drain well; set aside.
In a medium stockpot, heat the oil over medium heat. Add the onion, salt, and pepper. Cook, stirring frequently, until translucent, about 5 minutes. Add the stock, and bring to a boil. Stir in the asparagus. Return to a boil, and cook, partially covered, until asparagus are tender and bright green, 2 to 3 minutes.
Working in batches of no more than 2 cups, transfer to a blender, and puree. Cover lid with a kitchen towel, as hot liquid will expand when blended. As each batch is finished, pass through a medium sieve set over a clean container. Place in ice bath, and let stand, stirring occasionally, until cold. Taste, and adjust for seasoning. Garnish with asparagus tips and creme fraiche, if desired.