Whisk together the milk and flour in a small pan until smooth. Place over a medium-low heat and whisk constantly until the mixture is very thick and paste-like. Scrape into a bowl, cover with clingfilm directly on the surface and refrigerate until completely cold.
Once the flour mixture is cold, place the butter and sugar in a large bowl or the bowl of your stand mixer and whisk on high speed for a good few minutes until extremely light and fluffy. Whisk in the vanilla and salt.
Whisk in the flour mixture a tablespoon at a time, whisking well after each addition, until it has all been mixed in and the buttercream is completely smooth, it should almost have the consistency of whipped cream.
Place one of the cake layers on a cake stand or serving platter, spread a dollop of the buttercream over the top, place another cake layer on top, press down gently and repeat. Place the final cake layer on top and give the whole cake a very thin coating of buttercream, just enough to fill in the gaps. Use a palette knife or dough scraper to get it smooth.
Place the remaining buttercream in a piping bag fitted with an open star nozzle (or nozzle of your choice) and pipe dollops of it over the top of the cake, starting with a ring around the outer edge and working your way inwards.
The cake will remain soft for several days if stored in an airtight container at cool room temperature.