In a medium saucepan, bring the milk, butter, sugar and salt to a simmer. Reduce the heat to medium-low, add the flour, and stir vigorously by hand until the dough comes together in a smooth ball that cleans the sides of the pot. Transfer to a bowl and let cool for about 10 minutes.
Using an electric mixer, beat in the eggs one at a time. You’ll end up with a sort of smooth, shiny, sticky batter that’s thicker than pancake batter but thinner than cookie dough. If you like, you can let it sit at room temperature for an hour, or refrigerate for up to 24 hours, until you’re ready for it.
When you’re ready to cook your churros, heat 2-3 cups of canola oil in a pot until hot but not smoking - test to see if it’s ready by dipping a bit of bread in - it should bubble and simmer around the bread. Spoon the batter into a pastry bag fitted with a large star tip, and squeeze a few inches at a time into the oil, nudging the batter off with a knife. Don’t crowd the pot - cook maybe 3 or 4 at a time, flipping them as necessary as they turn golden. They should take a few minutes to cook - test to make sure they are cooked through (if they brown too quickly they might not - just turn the heat down). Transfer to paper towels to drain any excess oil.
In a shallow bowl, combine the cinnamon and sugar. Roll the churros around in it to coat them well while they are still warm. Eat.
Makes lots (a few dozen, depending on how long you make them.)