There may be a better option out there, but in the past what i've done to get around that issue is to use a subdialog button instead. just move all your embedded components into the subdialog, give it the same image/button/text or whatever and it'll look just like your embedded button. the only caveat is that the virtual window flashes up, but the required "terminate and close" component will refresh the page for you when the virtual window closes after a second. usually i put something in the virtual window popup like "adding to cart" or something similar.
of course, this is assuming you don't want to use the ListSelect component, which can be used to easily exit and return to the form with only a short flash to give it away.
Hopefully this helps, and if it doesn't, hopefully someone else will have something that does!