The reason you are getting the site is because you are trying to read the status from site configuration file, which doesn't contain the state of the site. Instead, what you should be doing is connect directly to IIS server like this:
ServerManager manager= ServerManager.OpenRemote("testserver");
var site = manager.Sites.First();
var status = site.State.ToString() ;
Please refer to my post below for full details: Programmatically get site status from IIS, gets back COM error