Preheat oven to 400°F.
Stir together broccoli, bread, onion, garlic, oil, peppercorns, and ½ teaspoon salt in a large bowl until ingredients are evenly coated with oil.
Spread broccoli mixture evenly on a parchment paper–lined baking sheet.
Roast in preheated oven until lightly charred, 25 to 30 minutes.
Transfer broccoli mixture to a cutting board, and finely chop mixture into ⅛- to ¼-inch crumbs.
Place 1 ¼ cups broccoli crumbles in a bowl; stir in 1 tablespoon lemon zest, and set aside.
Place remaining crumbles (about ¼ cup) in a small dish.
Meanwhile, bring a large saucepan of salted water to a boil over high.
Cook pasta according to package directions for al dente, about 8 minutes.
Drain pasta, reserving ½ cup cooking liquid. Set aside.
Stir together milk, remaining ¼ cup broccoli crumbles, and remaining ½ teaspoon salt in a medium skillet; cook over medium until milk starts to simmer around edges, about 5 minutes.
Remove from heat, and pour mixture into a blender.
Secure blender lid. Remove center piece to vent steam, and drape a towel over top to catch any splatters.
Process until a smooth, creamy sauce forms, 30 to 45 seconds.
Return sauce to skillet.
Add pasta and reserved cooking liquid to skillet; stir to coat with sauce.
Simmer over medium, stirring and shaking skillet occasionally, until sauce reduces and coats pasta, 2 to 3 minutes.
Remove from heat; add butter and remaining 1 tablespoon lemon zest.
Swirl skillet until butter emulsifies into sauce, about 30 seconds.
Divide pasta among 4 bowls; top evenly with reserved broccoli crumbles and shaved Parmesan, if desired.
