[I have a 2014, but I suspect the pin locations and colours are the same for a 2017]
The horn on these K2 trucks is fairly straight forward. The steering wheel button signal goes through the clockspring, and feeds a ground signal into the Body Control Module (BCM Green connector, pin 18, wire colour Green/White) when the horn button is pressed.
The BCM outputs a switched ground to the horn relay inside the underhood fuse box (BCM Brown connector, pin 19, wire colour Brown/White).
Inside the fuse box, the horn relay coil has one side connected to B+, and the other to the BCM control. With the switch contacts, one side is tied to B+, the output is through fuse 48 and to the horn(s).
The real question, is if you have a bad relay, or worse... bad BCM output.
You can do a simple test - With the keys out of the ignition, unplug the brown connector from the BCM. The BCM is right behind the floor brake pedal, its a black box with 7 coloured connectors.
With the brown connector unplugged, reinstall your horn fuse, F48.
IF your horn still blares non-stop, you most likely have a bad relay. If the horn does not blast, you could have a bad BCM output, or, you could have a bad clockspring/horn button.
You can do some pinpoint tests too. Pull fuse 48, reconnect any BCM connectors you unplugged, and reconnect your battery.
Measuring voltage to ground, measure the brown/white wire as well as the green/white wires previously mentioned. You should have close to 12 volts normally with horn button not pressed. When you press and hold the horn button, you should see those drop to near zero. They should return to around 12 volts when you let off the horn button. If so, this means your horn button and BCM output are working correctly, and you have a bad horn relay.
If the green/white wire stays zero all the time, disconnect the green connector from BCM and measure resistance to ground on green/white wire. If this is near zero ohms regardless if horn button is pressed or not, you have a bad button, clockspring, or a short to ground somewhere.
Most likely though, you will find you have a bad internal horn relay. It is a circuit board mounted relay. If your BCM output is working as intended, and you want to save some cash and not replace the fuse block, you can keep fuse 48 removed, and add your own relay. Just a matter of tapping the brown/white wire at the BCM (this is easier then at the fuse block, but you can do it there too), and tapping the horn feed. 4 pin relay, and 2 fuse holders will do. 2 or 3 amp for the relay coil, and 15A for the horn output. You will want to of course, make sure you buy a relay socket that has a protection diode (and mind the polarity applied to coil), else you could spike your BCM. The BCM likely already has spike protection, but still good to be on the safe side.
Considering what you described, before the horn fully failed in the on position, it sounds like your horn relay switch contacts were going bad and in the last straw they got stuck together.
EDIT - And if you are feeling really adventurous, the horn relay can be replaced. It is tedious to open the fuse block, but totally doable. Relay is an F&T Fujitsu FTR-P3AN012W1.