Hi James,
My pleasure!
I would not waste time on a battery alternative as there are really none better. You may find batteries with higher capacity ratings but these are almost always fake and there are many who have shown this with YouTube videos and smart chargers revealing substandard mAh ratings from that which is published.
Since you’ll have the unit open you may just want to replace the batteries with new ones. The only downside to Li-Ion batteries (and LiPo) are that they only have a 3 - 5 year shelf life. I don’t know how Tesla ignores this in their battery life claims! Adding additional batteries seems not to be an option due to many restrictions to location, space and charging requirements so this is not an option. Thus, just go with the best ones.
Read up on Li-ion batteries. They don’t like to be fully charged and recharged before cooing down first. You only have control over the latter.
Even with new batteries I have also found run times to be much less than 1 hour but I must say that when I am running HEXA I am usually demonstrating it to friends and relatives and the Dance Skill leg movements are complex and a high current drain (much greater than a normal walking gait). Manufacturers make run time claims based upon new, fully charged batteries with the robot running at an optimum ambient temperature (usually 22C) and at a constant current draw with periods of inactivity factored in (say 60 percent movement over the 1 hour claim). Also calculated with the camera ON or OFF and Night Vision ON or OFF (think anything that could drain power). And, this would be for the bot itself without any consideration for added components that would drain the power at the 3.3V or 5V taps. The published run time is the best performance under optimal conditions and use and rarely duplicated in the real world but a necessary and required spec.
I have worked with the code on the Phoenix Hexapod (a bot that has similar functionality) and do know that the code instructions for such things as the interval between no commands being received and HEXA going into Rest Posture is probably either a line of code you could possibly remove or more simply a timeout value you could increase to a ridiculous value (say 3,600 seconds, or the maximum value allowed) which would not be reached. You should ask Vincross Technical about how to change the timeout (which was probably done to save current use just as some German cars now turn off their engines at traffic lights to increase MPG).
I hope that this helps.
Best Regards,
Bill