Preheat oven to 425°F.
Toss together cauliflower, shallots, oil, 2 teaspoons salt, paprika, and black pepper on a large rimmed baking sheet.
Spread mixture in a single layer.
Roast in preheated oven until cauliflower is tender and browned in spots, 30 to 35 minutes.
Meanwhile, bring 2 ½ quarts water to a boil in a large pot over medium-high.
Stir in remaining 2 ½ teaspoons salt.
Add spaetzle, and cook according to package directions for al dente.
Drain, reserving ½ cup cooking liquid.
Wipe pot dry.
Add butter to pot, and heat over medium, stirring often, until lightly browned and foamy, 3 to 5 minutes.
Add cauliflower mixture, spaetzle, and reserved cooking liquid; gently toss to combine until spaetzle is coated with brown butter.
Remove from heat; stir in lemon zest and juice.
Season to taste with additional salt and black pepper.
Garnish with dill, sour cream, and red pepper as desired.
