Preheat oven to 350°F. Line three cookie sheets with parchment paper or silicone baking mats.
Place water, 2 tablespoons softened butter, 2 tablespoons sugar, vanilla, and salt in a medium saucepan. Heat over medium heat until butter is melted and stir occasionally until mixture boils.
Turn off the heat and remove pan from the stove. Stir in the flour with a wooden spoon. A thick paste will form. Make sure to do this off the heat and off the stove, so that the mixture can cool as you stir it.
Transfer the dough to the bowl of a stand mixer and let sit 1 minute to cool. Attach the paddle attachment and add eggs, one at a time, mixing well after each addition (work fast to avoid cooking the eggs). You can also use a large bowl with a hand mixer but work fast.
Place the churro batter in a large pastry bag fitted with a star or 1M tip.
Pipe churros in desired size and shapes onto cookie sheets. (This recipe makes approximately 60 3-inch long churros or 25 7-inch long churros.) If the dough sticks to the tip you can use a knife or kitchen scissors to cut the dough at the piping tip.
Spray the churros with nonstick cooking spray. This will help them brown.
Bake for 20-30 minutes (depending on size), rotating pans as needed, until churros are baked through and lightly golden.
Cool slightly, or until you can handle them.
Melt remaining ½ cup butter in a medium size bowl. Mix sugar and cinnamon in another bowl. Dip the churros in the butter then roll in cinnamon sugar. Serve immediately with dipping sauce.
To make chocolate ganache: place 1/3 cup heavy whipping cream and 1 cup semi-sweet chocolate chips in a microwave safe cup or bowl. Heat for 1 minute, then whisk until smooth.
To make caramel dipping sauce: place 20 unwrapped caramel squares and 3 tablespoons heavy whipping cream in a microwave safe cup or bowl. Heat for 1 minute, then stir until smooth, reheating as needed. Stir in 1/4 teaspoon kosher or sea salt if desired.