Pour the warmed milk in the bowl of a stand mixer, fitted with the dough hook attachment. Add the sugar and yeast and stir to combine. Let sit for 5 minutes.
Add the egg, melted butter and vanilla extract and beat to combine. With the mixer running slowly, add the flour and salt and mix for 5 minutes to work the dough. Turn off the mixer and let sit for 10 minutes.
Transfer the dough to a lightly oiled bowl and cover with plastic wrap. Place in the refrigerator overnight or for 8 hours.
Remove dough from the bowl and turn it out onto a lightly floured surface. Roll the dough out until it is only ½ inch thick. Using a doughnut cutter, cut into 12 donuts. Save the holes to cook as well.
Place the donuts on a baking sheet lined with parchment paper. Cover with kitchen towels and allow to rest for 20-25 minutes as you prepare the oil.
Heat oil to 365°F. Add 2-3 donuts at a time and cook for about 1 minute per side. The donut holes take about 30 seconds per side. Use a slotted spoon to remove the donuts and place on a wired cooling rack. Repeat with the remaining donuts.
For the glaze, whisk the sugar and cocoa powder in a shallow bowl. Slowly stir in milk and vanilla extract to make smooth, pourable glaze. Dip each donut in the glaze and place back on cooling rack. Top with sprinkles if desired. Allow glaze to set for 30 minutes before serving.
Notes
The milk needs to be warm but not scolding to help activate the yeast. It should be around 105-110°F.
If you don't want the dough to rise overnight, you can use instant yeast and cover the dough, letting it sit at room temperature for 1 hour or until the dough doubles in size.
Use a candy thermometer to get the temperature of the oil to 375°F, which is best for frying. Speaking of frying, do not overcrowd the pot or the temperature will drop. The amount of oil really depends on how wide or tall your pot is. You want it to be about 2 inches deep.
Don't pour out the used oil in the sink. Let it cool and the pour into an empty container or save and reuse it.