I mostly use Safari on OSX. Kind of an important feature - often leaving one with a feeling that a double-charge might happen. 1 out of 6 or 7 times that orange button is pushed to complete an order, it just disappears and nothing else happens on the page.
Comments
I'm a seasoned web developer, let me know if you need a little help debugging or bounce any thoughts over.
I didn't look at your code but if you're using a timeout/timer method then Safari may be behaving too asynchronously and you may need to control the flow with a callback based on an AJAX fetch to a backend service that basically responds with "it's OK to submit the form now" - which tracks repeated posts on the same form (form having a unique ID). Then you have a listener on the page which just waits for the "success" signal, disables the button and makes the call to submit(). That will work around any asynchronous behaviors.
I know, sounds pretty over-architected but cross-browser is really tough when one of them mis-behaves. I hate contorting stuff just for 1 browser.
Now I may consider myself a bit of a geek as I am in IT, but man that sentence brings it to a whole new level !! LOL