Heat the oven to 450°F. Lightly coat a large, shallow baking dish with olive oil. Bring a large pot of salted water to a boil. Add the asparagus and blanch until tender but with a slight bite left to it, about 2 minutes. Scoop it from the water with a large slotted spoon, set it in a colander, and run it under cold water to preserve its green color. Drain well. Keep the water boiling for the pasta.
In a large skillet, heat the olive oil over medium heat. Add the scallions; sauté 1 minute to soften. Add the asparagus and sauté briefly, about 1 minute. Take the skillet off the heat and add half the zest, the lemon juice, thyme, salt, and pepper; mix well and reserve.
In a medium saucepan, heat the butter and flour over medium heat, whisking until smooth. Cook for 1 minute, whisking constantly, to cook away the raw taste of the flour. Add the milk and cook, whisking all the while, until it comes to a boil. Lower the heat a bit and cook until smooth and lightly thickened (about the consistency of heavy cream), 3 or 4 minutes.
To make a béchamel, stir milk into a butter and flour roux.
A thin sauce is what you're after. Cook it until it has the consistency of heavy cream.
Turn off the heat and add the mascarpone, the remaining lemon zest, and 1/2 cup of the Grana Padano, whisking until the mixture is fairly smooth (there will be a slight grainy texture from the cheese). Season with the cayenne, allspice, and more salt and pepper.
In a small bowl, combine the breadcrumbs and the remaining Grana Padano. Season with salt and pepper and add a drizzle of olive oil. Mix well.
Return the cooking water to a full boil and cook the fettuccine, leaving it slightly underdone. Drain well. Return the fettuccine to the cooking pot. Add the mascarpone sauce, the pine nuts, and the asparagus with all its juices. Toss and taste for seasoning. Pour into the baking dish and sprinkle the breadcrumb mixture evenly over the top. Bake uncovered until bubbling and golden, 15 to 20 minutes. Serve right away.