That is a good question.
As I realize, you just have considered pacf but that is not enough. ACF and PACF are both necessary to select the best model.
On the other hand, stationary tests are weak and sensitive and need a large amount of lags to be tested.
In addition, it is preferred to make time series stationary before applying any model. Roughly speaking, ARIMA models just consider a special case of being non-stationary (preferably in trend).
About your questions, I am not sure about the auto.arima function but I am sure that the number of data points in your example is small. Simulating model using a high number of data points would answer your questions well. Also, I advise you to consider ACF of time series as well as PACF. About model selection the rule of thumb is choosing the simplest model(note that the simplest model after making the time series stationary).
I refer you to this reference. This book does not answer all of your questions but gives you some clues.
----- complementary section ------- @nsw considering a trend in your data. If you consider a stationary model, it results in an upward/downward prediction but actually ARMA models are designed to predict flat data. I have changed your code to reflect this difference:
require('forecast')
require('tseries')
controlData <- arima.sim(list(order = c(1,1,1), ar = .5, ma = .5), n = 1000)
acf(controlData)
ts.plot(controlData)
naiveFit <- arima(controlData,order = c(2,0,1))
trueFit<- arima(controlData,order = c(1,1,1))
PrnaiveFit<-forecast.Arima(naiveFit,10)
PrtrueFit<- forecast.Arima(trueFit,10)
matplot(cbind(PrnaiveFit\$mean,PrtrueFit\$mean),type='b',col=c('red','green'),ylab=c('predict ion'),pch=c('n','t'))