Make the sauce: Cook the condensed milk in a medium saucepan over medium heat, stirring constantly, until it turns a light caramel color and starts to pull away from the sides of the pan, 10 to 15 minutes. Gradually add the coconut milk and whisk until smooth, about 5 minutes; set aside. (You can refrigerate the sauce, covered, up to 2 days; reheat before serving.)
Make the churros: Bring the milk, butter, sugar, vanilla and salt to a boil in a medium saucepan over medium-high heat, stirring, until the butter melts and the sugar dissolves. Reduce the heat to medium low; add the flour and stir vigorously with a wooden spoon until the mixture gathers into a glossy ball, about 1 minute. Transfer to a large bowl and let cool slightly, about 5 minutes. Beat in the eggs one at a time with a mixer. Transfer the batter to a piping bag fitted with a 1/2-inch star tip.
Fill a shallow dish with sugar for coating the churros (about 1/2 cup). Heat about 2 inches vegetable oil in a wide saucepan until a deep-fry thermometer registers 350 degrees F. Working in batches of about 6, pipe 3-inch-long segments of batter into the hot oil; use a knife to cut off the segments. Fry, turning once, until golden brown, about 3 minutes per batch. (Return the oil to 350degrees F between batches.) Transfer to a paper towel-lined plate to drain briefly, then roll in the sugar. Serve with the coconut sauce.