It looks that you are trying to implement elaborated workflow using node cloning approach.
I strongly suggest you to use Workflow module instead:
This module allows you to create arbitrary Workflows, and assign them to Entities.
Workflows are made up of workflow states. Transitions between states can be allowed per role. For example, a workflow with the states Draft, Review, and Published could be assigned to the Story node type. Only users with role 'chief editor' can set Stories to the published state.
You can set up the Workflow to alter states from form, page, comment and a special workflow tab.
Transitions between workflow states can have actions assigned to them. In our example, we could assign an action so that when the story moves from the Draft state to the Review state an email is sent out. Another action could be assigned to the transition from Review to Published so that the node's status is set to Published (and becomes visible on your website).
It is there, it works, and it seems to cover all your needs in one, integrated solution. Even it's example use case is almost exactly like your use case here.
If you want to configure it at revision level more easily, there is also Revisioning, "a module for the configuration of workflows to create, moderate and publish content revisions".
You use it in scenario's like this:
- Authors write content that prior to being made publicly visible must be reviewed (and possibly edited) by moderators. Once the moderators have published the content, authors should be prevented from modifying it while “live”, but they should be able to submit new revisions to their moderators.
- We shouldn't have to grant these roles “god-like” powers (e.g. D6's "administer nodes" permission) to implement this.