Boston Creme Doughnuts: Heat the milk until it is warm but not hot, about 100 degrees F In the bowl of a stand mixer fitted with the dough hook, combine milk with the yeast. Stir lightly, and let sit until the mixture is foamy, about 5 minutes. Beat the eggs, butter, sugar and salt into the yeast mixture. Add half of the flour (2 cups plus 2 tablespoons), and mix until combined. Mix in the rest of the flour until the dough pulls away from the sides of the bowl. Add remaining flour; 2 cups plus 2 tablespoons. If the dough is too wet, add more flour 2 tablespoons at a time. The dough will probably become too thick to beat; when it is, transfer it to a floured surface, and gently knead it until smooth. Grease a large bowl with a little oil. Transfer the dough to the bowl, and cover. Let rise at room temperature, in a warm place, until it doubles in size, about 1 hour. While the dough rises make the pastry cream. Pastry Cream: in a small saucepan combine sugar, flour, cornstarch and salt. Over medium heat, whisk in eggs and cream. Continue cooking, whisking constantly, until the mixture just begins to boil and thickens, about 10 minutes. Adjust heat so the mixture bubbles gently; cook until it coats the back of a spoon (when you draw your finger through this coating, the resulting line should hold its shape). Stir in butter and vanilla. Strain through a fine-mesh sieve, into a bowl set over an ice bath. Refrigerate until chilled before using. Making the doughnuts: Turn the dough out onto a well-floured surface, and roll it to 1/2-inch thickness. Cut out the doughnuts with a floured 3- inch pastry cutter, or thin-rimmed drinking glass. Knead any scraps together, being careful not to overwork, and let rest for a few minutes before repeating the process. As you work, place the doughnuts on lightly floured baking with about 3 inches of room between each one. Let rise in a warm place until they have puffed and their tops have domed, about 45 minutes. About 15 minutes before the doughnuts are done rising, Attach a deep-frying thermometer to the side of large heavy-bottomed pot or dutch oven, heat 2-inches of oil, over medium-high, to 375 degrees F. Prepare two cooling racks, topping them with paper towels and placing them over baking sheets. Using a metal spatula carefully add the doughnuts to the oil, a few at a time. When the bottoms are deep golden, about 45 seconds to a minute, use a slotted spoon, or tongs to flip; cook until they're deep golden all over. About 2 to 3 minutes total. Transfer the doughnuts to the prepared racks, and repeat with the rest of the dough, ensuring the dough remains at 375 degrees F while frying. Glaze: Whisk together powdered sugar, unsweetened cocoa powder, milk vanilla until smooth. Filling the Doughnuts: Poke a chopstick into the side of each doughnut, and gently hollow out some space inside by gently wiggling it from side to side.Fill a pastry bag fitted with a #4 tip or higher with pastry cream. Insert the tip into the hole and squeeze. If the filling clumps up toward the center of the doughnut, poke a hole on the other side and repeat the filling process. Dip the tops of the doughnuts in the glaze, allowing excess glaze to drip back into bowl. Place doughnuts on a rack top with sprinkles, if desired. Allow to harden for at least 2 hours.