Preheat the oven to 350F and grease a 9 inch springform pan.
Make the custard sauce ahead of time. Bring the milk to a simmer over medium heat. Meanwhile whisk the yolks and sugar until well combined. Drizzle a little of the hot milk into the egg mixture, whisking all the time. Drizzle a little more, then transfer that back into the pan of hot milk and continue cooking, stirring constantly, until the mixture coats the back of a spoon. Do this slowly, over medium heat, and I like to use a silicone spoon or spatula to scrape the bottom and sides of the pan as it heats. The mixture will become velvety and thickend, but it will not be as thick as pudding. It will continue to thicken as it cools, so don't overcook or it can curdle. Stir in the vanilla.
Pour the custard through a sieve (to catch any stray lumps) into a heat proof jar or bowl and place a piece of plastic wrap onto the surface so it won't form a skin as it cools. Put in the refrigerator until completely chilled.
To make the streusel topping, blend the bits of butter into the flour, sugar, and oats until the butter is incorporated and the mixture has a coarse crumbly texture. Put in the refrigerator.
Cream together the butter and sugar until light and fluffy. Beat in the eggs, one at a time.
Whisk together the flour, baking powder, cinnamon, and salt. Fold the dry ingredients into the butter/sugar mixture, along with the milk or cream.
Spoon the batter into your prepared pan, and smooth out evenly. Top with the sliced apples, and then the streusel topping. Note: no need to arrange the apples perfectly, but try to get them in an even layer.
Bake for about 50 minutes to an hour, until the top is lightly browned and a toothpick comes out without wet batter clinging to it.
Let cool a bit in the pan before removing. Dust with confectioner's sugar before serving.