?
Great questions.
a second Raft, that uses the same Git repo but a different branch?
This was definitely something we considered when designing rafts... i.e. the ability to "promote" changes between environments. This is somewhat common in other IaC tools, such as Chef, where a cookbook is tied to a git repository. Some folks will use branches in this "promotion" manner.
I was also thinking of having a second Otter Server instance for the pre-production environment
This is fine; actually, our licensing model is designed for this. One instance of Otter managing pre-production servers (typically free), then the other instance managing production servers. Obviously you loose the unified visualization, but a lot of folks prefer having two totally different dashboards anyway.
A lot of folks will also set up a second instance of Otter as more of a "Sandbox". It isn't to "test" the configuration plans, but more to test extensions, play around, try upgrades, etc.
hope that helps.