Start with the pastry cream – heat the milk in a saucepan, and bring to a simmer or about 200 degrees F.
Whisk the egg yolks, sugar, and cornstarch together for 2-3 minutes until light in color.
Once the milk is simmering, slowly pour half into the egg-sugar mixture, whisking at the same time to temper the eggs.
Pour everything back into the saucepan and heat over medium heat, whisking constantly. After a couple minutes, a layer of bubbles will form over the top and it will begin to thicken.
Once the bubbles disappear, continue whisking for one more minute, then remove from heat.
Transfer to a bowl and cover with plastic wrap, pressing it directly up against the pastry cream to prevent a skin from forming. Chill for at least two hours or overnight. Alternatively, you could place the bowl of pastry cream over a water bath and whisk constantly until it cools down to 70 degrees F – you can immediately turn it into buttercream at this point.
If the pastry cream was chilled overnight, mix the pastry cream for about 10 minutes on low speed until it warms up to about 70 degrees.
Add the butter, a few cubes at a time, and beat on medium speed. If it looks curdled at all, continue beating on low speed until smooth.
Add the cream cheese, vanilla paste, and salt, and beat until fully incorporated.
Continue beating on low speed for several minutes until smooth.