Peel your sweet potatoes and cut them into even chunks so they cook at the same rate. Place them in a large pot, cover with cold water, and bring it to a boil over medium-high heat. Let them cook for about 15 to 20 minutes, until a fork slides through easily without any resistance.
Drain the sweet potatoes well and return them to the pot or a large mixing bowl. Mash them with a potato masher or hand mixer until they're completely smooth, with no lumps left behind. This step matters more than people think, since lumpy filling bakes unevenly.
Add the sugars, eggs, melted butter, milk, vanilla, and salt directly into the mashed sweet potatoes. Beat everything together until the mixture looks creamy and well combined. I like to taste a tiny bit here to check the sweetness before baking.
In a separate bowl, combine the brown sugar, flour, cinnamon, and chopped pecans. Work the softened butter into the dry mixture with your fingers or a fork until it forms small, crumbly clusters. This streusel is what gives the soufflé its signature crunch.
Spread the sweet potato filling evenly into a greased 9x13-inch baking dish. Sprinkle the streusel topping over the top in an even layer, covering every corner. Bake at 350°F for 35 to 40 minutes, until the topping turns golden brown and the filling is set but still soft underneath.