Use option 2). You want to isolate the beta code as much as possible from the production code, and this way if worst comes to worst and the beta code crashes the server then the beta users will just fail over to the production server.
With 1) if your beta environment is too unstable then users simply won't use it. With 3) you run the risk of tainting the production code.
Most of my experience with this sort of thing has been with Amazon AWS, where getting a new "server" is as easy as getting a new EC2 instance. I'm assuming that it's not too costly for you to set up a new server.