I whisk the egg yolks, sugar, and cornstarch together in a bowl until pale and smooth. Then I heat the milk in a saucepan until it just starts to steam, and slowly pour it into the egg mixture while whisking constantly. This keeps the eggs from scrambling.
I pour the mixture back into the saucepan and cook it over medium heat, whisking nonstop, until it thickens into a pudding-like consistency. Once it coats the back of a spoon, I stir in the butter and vanilla, then cover it with plastic wrap pressed directly onto the surface.
In my mixer bowl, I combine the warm milk, sugar, and yeast, letting it sit for 5 minutes until foamy. Then I add the flour, salt, eggs, vanilla, and butter, kneading until the dough turns smooth and slightly tacky but not sticky.
I place the dough in a greased bowl, cover it, and let it rise somewhere warm for about 1.5 to 2 hours. I know it's ready when it has doubled in size and springs back slowly when poked.
Once risen, I roll the dough out to about an inch thick on a floured surface. Using my round cutter, I cut out even circles and place them on parchment paper, leaving space between each one.
I cover the shaped dough rounds loosely and let them rise again for 45 minutes to an hour. They should look noticeably puffier before frying.
I heat oil to 350°F in a deep pot and fry the donuts in batches for about 1-2 minutes per side, until golden brown. I avoid overcrowding the pot so the oil temperature stays steady.
While still warm, I roll each donut in sugar until fully coated. Once they've cooled slightly, I poke a hole in the side with a chopstick and pipe in a generous amount of custard until it feels full.