Wow! What a stunning change! Good job!
To answer some of your questions:

-Don't use human hand warmers or heat packs. They get too hot and can cook him. Look up the company Ship Your Reptiles. They sell reptile-specific heat packs that last 48+ hours and are safe.

-40 gallons is WAYYYYY too big for a baby BP. Even my 1500g breeder girl isn't in a 40 gallon because she stresses in anything bigger than a 20 gallon (I use tubs for most of mine, so the equivalent for her). 10 will last you a good while and then a 20 after that will work for a long time and possibly permanently if it's a male and stays fairly small. My 4' 1300g male is in a 20 gal and doesn't need anything bigger. 40 gals are typically only used with large females. Also, you need to keep the humidity around 60% normally and 70% when he's in shed and that's going to be virtually impossible in a large tank. Humidity is hard to keep right in even a 10 gallon tank, which is why most experienced keepers recommend tubs or snake-specific cages. I live in a really humid area and still have to mist my tanks several times per day. My tubs don't have that problem.

-If you're on Facebook, I recommend the Ball Python Owners group. A lot of people from here are on there and it's geared toward educating new owners. It's a good place to start in addition to this forum.

-Definitely get a thermostat. Your hot spot should be about 90* give or take a few degrees. I've tested unregulated heat mats and had them get over 130* which can kill your snake. You can find cheap ones on Amazon that will work in the short term. Your cool spot should be between 80 and 85*. Also, I recommend an Accurite indoor-outdoor thermometer-hygrometer. It has a probe you can use for the hot spot and the main unit monitors ambient/cool side temps and humidity. And they're cheap and work really well. Analog ones are horrendously inaccurate. I had an analog and it read 10% humidity when it was actually 70%. I was over-misting and could have made him sick.

Plop is adorable. You're doing great!