Fill a large bowl with ice water. Bring a large pot of water to a boil. Salt the water, add the asparagus and cook until crisp-tender, about 1 minute. Using a spider or large slotted spoon, transfer the asparagus to the ice water to cool. Drain, pat dry, then slice on a sharp angle into 1-inch pieces. Return the water to a boil.
In a large skillet, heat the oil, two turns of the pan, over medium. Add the shallots, garlic, lemon zest and crushed red pepper; season with salt and pepper. Cook, stirring often, until the shallots and garlic soften, 2 to 3 minutes. Add the wine and cook, stirring often, until reduced by half, about 1 minute. Add the butter and stir the sauce until the butter is melted. Reduce the heat to low.
Add the pasta to the boiling water and cook until al dente. Drain, reserving 1/2 cup of the starchy cooking water.
Add the asparagus to the sauce and cook, stirring occasionally, until heated through, 1 to 2 minutes. Toss in the pasta and starchy water, the lemon juice and 1 cup cheese; season.
Serve the pasta in shallow bowls. Top with more cheese.