I found some problems.
First, the script doesn't handle
inverted_dish option properly. It produces a keycap with 0.1mm top. See the second picture. I could share my monkey patched code, but you will find better one. :)
Second, You are doing wrong calculation on keycap width. It should be
19.05 * (key_length -1) + bottom_key_width, not
bottom_key_width*key_length. It makes longer keycaps slightly shorter than they should be. See third picture.