In a large mixing bowl, beat the egg yolks with an electric mixer until creamy.
Add ¾ cup / 150g (5.3 oz) of the sugar and continue beating on high speed for 3-5 minutes, until the mixture is pale, fluffy, and has doubled in volume.
Beat in the sifted cocoa powder until just combined.
While the yolks are whipping, bring the milk to a gentle boil in a small saucepan.
With the mixer running on low, very slowly stream the hot milk into the egg yolk mixture. This tempers the eggs and prevents scrambling.
Once all the milk is incorporated, pour the mixture back into the heavy-bottomed saucepan.
Cook the custard over very low heat, stirring constantly with a wooden spoon and scraping the bottom.
Continue until it thickens enough to heavily coat the back of the spoon (a line drawn with your finger should hold its shape).
Do not allow the mixture to simmer or boil.
Once thickened, immediately return the custard to the mixing bowl. To speed up the process, set this bowl inside a larger one filled with cold water.
Beat on medium speed until the custard is completely cool to the touch.
In a separate bowl, beat the softened butter with the remaining ½ cup / 100g (3.5 oz) of sugar until it is light, pale, and fluffy, about 3-4 minutes.
With the mixer on medium-low, add the cooled chocolate custard to the whipped butter, one large spoonful at a time.
Once all the custard is added, increase the speed to medium-high and beat until the buttercream is perfectly smooth, glossy, and homogenous.
Chill the buttercream for at least 30 minutes before using to achieve the perfect spreading consistency.