In a small saucepan whisk the egg yolks and sugar together until smooth. Whisk in the milk until smooth. Bring to a boil over medium heat, stirring constantly. Once at a boil, reduce heat to low and simmer for 1 minute, stirring constantly. Take off the heat and place it on the counter to cool for 30 minutes. Stir it every few minutes so it cools faster.
Pour this mixture into a bowl and place it in the fridge for 1 hour. Stir it a couple of times to make sure it cools down.
While cooling, make the whipped cream by adding the heavy cream to a large bowl with the powdered sugar and vanilla. Using an electric hand mixer, whip until it just forms stiff peaks, do not over mix. Place in the refrigerator until ready to assemble.
Add the mascarpone to a large bowl and stir it with a fork just to break it up. Add the first custard mixture to the bowl and whisk them together until combined.
Add the whipped cream to the bowl and fold it in gently until there are no streaks left.
Place the coffee and kahlua in a small bowl, stir together.
Take the ladyfingers one at a time and dip them into the coffee mixture on both sides quickly, do not let them absorb too much liquid. Place them into the bottom of an 11x7 baking dish. Form one layer, you may need to break some of the ladyfingers to fit.
Top with half of the cream, smooth it out. Add another layer of ladyfingers, pressing them in gently. Top with the remaining cream and smooth it out.
Dust with the cocoa powder. Cover and place in the fridge for at least 6 hours to set. I prefer to let it set up overnight.
Add chocolate shavings if using, slice, and serve.