How to manage editing and publication of content The scenario is this:


Content is created or edited:


At that point, the content should be marked or moved to a state of "edited" If the content is new, it should not be published. 
If it is an existing node, it the ORIGINAL version should REMAIN published until it is "approved". 


Content is approved:


If the approved node is preexisting, the edited version replaces the old version. 
Otherwise, it is new content and it is moved from not published to published. 

I'm looking for suggestions on how to accomplish this. My hope was to use the module Workflow and integrate it with Triggers.  

So far, I'm not seeing an obvious path to making this work as described above.
I think you're looking for the Workbench Moderation module.  From the project page:


  Workbench Moderation adds arbitrary moderation states to Drupal core's "unpublished" and "published" node states, and affects the behavior of node revisions when nodes are published. Moderation states are tracked per-revision; rather than moderating nodes, Workbench Moderation moderates revisions.