Preheat oven to 350°F. Line three cookie sheets with parchment paper or silicone baking mats.
Place water, 1/2 cup butter (sliced into tablespoons), and salt in a large saucepan. Heat over medium heat until butter is melted and stir occasionally until mixture boils.
Turn off the heat and stir in the flour. 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.
Add eggs, one at a time, mixing well after each addition (work fast to avoid cooking the eggs). It'll seem like the eggs don't want to mix in but they will.
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.
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 1/2 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.