Combine the milk and flour in a medium saucepan over medium low heat and whisk to combine. Continue whisking until mixture has thickened, about 5 minutes.
Add in the sugar and continue to whisk until sugar has dissolved and a few bubbles pop on the surface.
Remove from heat and transfer to a bowl. Cover with plastic wrap and place in the fridge until completely cool.
Add the butter to the bowl of a stand mixer fitted with the paddle attachment and beat on medium-high until fluffy and light in color, about 3 minutes.
With the mixer on medium-low speed, add the flour mixture a few spoonfuls at a time until completely incorporated. Add in the salt and vanilla and whip again until fully incorporated and mixture is smooth and fluffy.