☒ Yes, it would probably be the 24.hours.from_now set for the expiration. Personally, I don't think that the JWT token should be a long living one. If the server returns that the token is expired, the consuming app should have a mechanism to validate a new one without user interaction.
☒ Great question. Since the stimulus controller is creating a hidden element, you would need to remove that hidden element with something like this. I would console log the file to see what parameters are available and then remove the hidden element based on those parameters.
When you drag the images on the page, did you verify that the direct upload is working? You should be able to check the console to see if Active Storage is creating the blobs. Once it creates the blob, the stimulus controller should create the hidden elements. Do an inspect on the browser to see what the elements look like. There does seem to be something off as the blob's signed_id should be getting set as the value.