Fill a large bowl with ice to use later as an ice bath. Place an empty bowl on top of the ice. Set aside. Place a storage container in the freezer to chill.
Whisk skim milk powder, guar gum, and locust bean gum in a small mixing bowl.
Add sugar and water to a medium heavy bottom saucepan. Cover with a lid, and let boil over medium heat until sugar is completely melted, about 5 - 6 minutes.
Remove lid, and continue cooking until the sugar begins to darken. Do not stir the caramel at this point. If it appears to be burning, you can gently swirl it in the pan. Once the sugar reaches an amber-colored liquid, about 4 - 7 minutes later, stir in heavy cream (be careful, the cream will bubble and slightly splatter). Add butter one cube at a time, and stir until the caramel is smooth.
Pour in milk, and stir to combine. Whisk in skim milk powder mixture.
Continue cooking the gelato base over medium heat, stirring often to ensure it doesn’t burn, until it reaches 195°F (90°C) on an instant read thermometer.
Place a fine mesh strainer over the empty bowl on top of the ice bath. Strain gelato base.
Chill gelato base until it has stopped steaming. Press plastic wrap against the surface of the gelato (to prevent a skin from forming on top) then cover with plastic wrap and rest in the refrigerator for 24 hours.
Remove the gelato base from the refrigerator, and whisk in fine sea salt.
Pour the gelato base into an ice cream maker, and process for about 20 - 25 minutes or according to the manufacturer's directions. The gelato will be on the soft side.
Transfer churned gelato into chilled storage container. Place gelato into the freezer to "cure" or harden up for a few hours. To serve, swipe the frozen gelato with a flat paddle. Smash the gelato on the side of the storage container to push out some of the air. Transfer to a serving bowl.
Store gelato in an airtight container in the freezer for up to 2 weeks.