Separate apps in TestFlight for production and staging?

There are two alternatives, adhoc distribution with an enterprise certificate and use a 3rd party service like fabric.io for distribution. Or use TestFlight, which we do, and have had no issues. We make sure that in the TestFlight reviewers notes we make clear that this version is just for beta testing. The only downside of this approach that we have found is that when you up the version number (not the build number) you have to resubmit for Beta review which can take anything from a few hours to a couple of days.