After investigating this further, I am seeing that the problem resides in the way the div and submit elements are dynamically generated by the body script. Since the elements are appended to the body tag, they are put at the very end and then must be absolutely positioned to 'sit' on top of the graphic.
I tried this with the twentyeleven theme and found that if the browser window was wider than the page width, everything was fine, but if the browser window was re-sized, the dynamically generated div and submit landed in a different part of the page.
I think the issue resides in where the script ajaxupload.js calculates the top and left for the div, but I can't figure out where.
I'm not sure if it would work, but perhaps instead of appending the div to a child of the body, why not just append it to the button itself? Then the top css would only have to be something like 'margin-top:-[element height]px