I think an easy way to move windows between workspaces, and switch workspaces, would be to use colored areas in the launcher. Please see the attached mockup.
There are four violet areas on the launcher, each corresponding to a workspace: the first one is the biggest because it contains three launchers (meaning there are three windows in that workspace); the second one is smaller because it only has one launcher (that is, there is one window in that launcher) and the other two are very small because there are no windows on those workspaces.
Dragging a launcher inside each of them would move their window to that workspace, and clicking an empty area would switch to that workspace.
Also, moving a favourite launcher to a workspace would mean that everytime you open that app, it opens on the workspace where you left it. It would also be easy to launch apps directly on a given workspace by dragging it from the dash to the corresponding workspace on the launcher.