In a large mixing bowl (I like to use my stand mixer), combine the warm milk with the yeast and sugar. Allow the mixture to sit 5-10 mins or until the mix is foamy and smells like bread. To the bowl, add the butter and egg, mix a little to combine and then add 3 cups flour and the salt. Knead the dough using a dough hook or your hands until the dough comes together and is smooth, about 3 minutes with a mixer and 5-10 by hand. If the dough seems too sticky, add the remaining 1/2 cup flour. The dough should come together, but be slightly sticky to touch. Grease a large bowl and place the dough ball inside. Cover the bowl and let rise in a warm place until doubled in size, at least 30 minutes.
To fry the doughnuts, line 2 baking sheets with parchment. Lightly flour a work surface and roll out the dough to a 1/2-inch thickness. Using doughnut or cookie cutters, cut out round of dough. Arrange the doughnuts on the prepared baking sheet, leaving at least 1 inch between doughnuts. Cover the doughnuts loosely with plastic wrap while the oil heats.
In a heavy-bottomed large pot or deep fryer, heat at least 2 inches of oil until a deep-fry thermometer registers 350 degrees F. Working in batches, use a slotted metal spoon or spatula to carefully place the doughnuts in the hot oil. Fry, flipping once, until light golden brown, 1 to 2 minutes per side. When done, transfer to a wire rack to cool. Make sure to return the oil to 350 degrees F. between batches. Sprinkle each doughnut liberally with sugar and then eat or use as desired!