In the bowl of a stand mixer, combine the warm milk, yeast, and sugar. Let the mixture sit for about 5 minutes to activate the yeast. Once ready, whisk in the egg until fully incorporated.
In a separate large bowl, whisk together the flour and salt. Attach the dough hook to the stand mixer. With the mixer running on low speed, add one-third of the flour mixture. Once the dough begins to come together, add another third of the flour mixture. Add the softened butter, one tablespoon at a time, mixing thoroughly after each addition. At this point, the dough will be sticky. Scrape down the sides of the bowl as necessary to ensure the ingredients are well combined. Add the remaining third of the flour mixture.
Once the dough starts to form, increase the mixer speed to medium and knead for 3-5 minutes until the dough becomes smooth and soft. While the dough may still stick to the sides of the bowl, it should be easy to scrape away with a spatula or dough scraper. (Avoid adding extra flour at this stage.)
Transfer the dough to a large greased bowl. Cover it with plastic wrap or a kitchen towel and let it rest for 30-45 minutes at room temperature until it has doubled in size.
Once the dough has risen, gently deflate it. On a lightly floured surface, divide the dough into 12 equal pieces. Loosely cover the dough with a kitchen towel. Working with one piece at a time, stretch and roll the dough into a 14-inch rope.
To form the twist, place your hands at both ends of the rope. Roll one hand upward while rolling the other hand downward, causing the dough to twist. Pick up the twisted dough at the center of the rope. The natural tension in the dough will braid it together. Pinch the end seam and place the twist on a parchment-lined baking sheet. Loosely cover with a kitchen towel and repeat the process with the remaining dough.
Allow the dough to rest for 8-10 minutes while heating the oil.
Attach a kitchen thermometer to a heavy-bottomed saucepan (like a Dutch oven or cast iron pan). Fill the pot with 2-3 inches of oil and set it over medium heat until the oil reaches 350°F.
Carefully place two or three doughnut twists into the hot oil, making sure not to overcrowd the pot. Fry for 95 seconds on each side, until golden brown. Transfer the cooked doughnuts to a paper towel-lined baking sheet.
Note: The oil temperature will fluctuate as you add raw doughnuts. Keep an eye on the thermometer to ensure the doughnuts cook properly without burning or remaining undercooked.