"There really aren't any shortcuts here, either you do things properly (which is now beyond our resources), or you'll just make the user experience worse."
It doesn't have to be that bad.
Keep some things cooperative (opening/moving windows, RO-style inter-process messaging, user input), but allow multiple processes to draw their windows simultaneously and use other IPC mechanisms for things like sound. In that way, you can have your video playing uninterrupted on one window while another task is rendering a draw image.
When you move a window, window updates pause temporarily, but you're concentrating on moving the window (and the sound from the movie should continue uninterrupted).