Preheat oven to 350°F and grease a 9×13-inch pan.
Mix flour, sugars, salt, cinnamon, and pumpkin pie spice for the streusel. Stir in melted butter until crumbly. Set aside.
Whisk together flour, sugar, baking powder, baking soda, salt, and spices. Cut in softened butter and half the pumpkin puree, mixing until combined.
In another bowl, whisk remaining pumpkin puree, eggs, oil, and vanilla. Add to flour mixture in three parts, mixing lightly after each addition. Beat until smooth and fluffy.
Spread 2 cups of batter in pan, sprinkle 1 cup streusel. Repeat with more batter and streusel, finishing with a generous streusel layer.
Bake 35 minutes, remove, sprinkle remaining streusel, then return to oven for 10–15 minutes more, until toothpick comes out clean.
Cool on wire rack 15–20 minutes.
Beat butter, vanilla, salt, milk, and powdered sugar until smooth. Drizzle over cooled cake.
Slice, serve warm, and enjoy.