In a large mixing bowl, whisk the egg yolks and sugar together until well combined. Add the milk and whisk until smooth.
Place the bowl over a saucepan of simmering water, making sure the bottom of the bowl does not touch the water. Cook the mixture, stirring constantly, until it thickens and coats the back of a spoon. This will take about 8-10 minutes.
Remove the bowl from the heat and let it cool to room temperature. Once cooled, add the mascarpone cheese and vanilla extract. Whisk until smooth and well combined.
In a separate mixing bowl, beat the heavy cream until soft peaks form. Gently fold the whipped cream into the mascarpone mixture until fully incorporated.
In a shallow dish, combine the cooled espresso and coffee liqueur. Dip each ladyfinger into the mixture, ensuring it is soaked but not overly saturated. Arrange a layer of soaked ladyfingers in the bottom of a rectangular dish.
Spread half of the mascarpone cream mixture over the ladyfingers, ensuring an even layer. Repeat the process with another layer of soaked ladyfingers and the remaining mascarpone cream mixture.
Cover the dish with plastic wrap and refrigerate for at least 4 hours, or overnight, to allow the flavors to meld together and the tiramisu to set.
Just before serving, sift the cocoa powder over the top of the tiramisu for a finishing touch. Cut into slices and serve chilled.