I'm not aware of any systems that do all this for you while still being flexible enough to accommodate lots of unique requirements. The script-based systems I've employed over the years all followed some basic rules:
- Increment the version number and make a new DNS entry for each committed changeset.
- Only allow migrations to "test" from "dev", and from "test" to "prod".
- Allow automatic reverting to a previous version in test or prod, but require manual merging of changesets from later revisions to put them back into the older upper stage.
I've successfully managed hundreds of sites and web apps in this manner, with minimal fuss. Virtualization adds in extra complexity in some respects, but makes other things easier as each VPS can have its own customized environment. As long as everything in dev, test, and prod uses the same base VPS environment, problems should be minimal.