This has been asked before, but even after implementing that solution, problems remain.
Specifically, I’m running into the problem where the dialog is sometimes hidden behind a Flash video. From reading responses to other questions, it seems that this can be based on the embedded Flash’s wmode being set to transparent (and possibly other non-opaque values). Since this a Chrome extension, I could have it automatically change that property before it gets loaded, but I’m concerned that being “transparent” is the correct behavior for some sites.
At the moment, I’m leaning toward showing my dialog in a brand new tab that is automatically closed afterward, although it might be too awkward within the workflow.
I also still need to look at how other extensions handle dialogs to see if they were able to work around this issue.
It seems that this problem can be solved by placing an iFrame in the same position as the dialog but with a lower zindex than the dialog so that the dialog can be seen.