Begin by heating about 1½ inches of oil in a deep, heavy-bottomed pot over medium heat until it reaches 360°F. Keep a close watch on the temperature while preparing the churro dough. The oil should stay hot but not become too hot, so adjust the heat as needed or briefly remove the pot from the burner if necessary.
While the oil is heating, prepare the dough. In a medium saucepan, combine the milk, water, butter, sugar, and salt. Warm the mixture until it just reaches a gentle boil. Once boiling, remove the pan from the heat and immediately add the vanilla extract and flour.
Using a silicone spatula, stir the mixture continuously, scraping along the bottom and sides of the saucepan to smooth out any lumps. Keep mixing until the dough comes together into a soft, smooth ball.
Transfer the dough into a piping bag fitted with a large open star tip. Carefully pipe strips of dough directly over the hot oil, about 1 to 1½ inches long, then use clean scissors to snip the dough so it drops into the oil. To make the process easier and quicker, you can pipe longer sections, around 2 to 3 inches at a time, cut several pieces, and continue repeating the process.
Fry the churros in small batches, making sure not to overcrowd the pot. Too many churros at once will lower the oil temperature and prevent them from becoming perfectly crisp. Try to keep the oil temperature close to 350°F throughout frying.
Cook the churros until they turn beautifully golden and crisp. Gently stir them during the first moments of frying to prevent them from sticking together. Once ready, remove them with a wire skimmer and place them on a tray lined with several layers of paper towels to absorb any excess oil.
For the finishing touch, combine the granulated sugar and cinnamon in a small bowl and mix well. While the churros are still warm, toss them in the cinnamon sugar until they are evenly coated.
Serve them fresh and warm for the best texture and flavor. They are especially delicious with a side of rich chocolate sauce for dipping.