I had this problem too... Took a little bit of backtracking through the code, but found out what it was. Not sure if this will fix the problem for everyone, but it certainly fixed my problem:
Solution
In the AutoSPInstallerInput.xml file, look for the <Port> tags for the CentralAdmin section. If you are using port 80, remove that and just leave the tags blank (ie: <Port></Port>).
Reason
This problem happens because the code:$CentralAdmin = Get-SPWebApplication -IncludeCentralAdministration | ? {$_.Url -like "
http://$($env:COMPUTERNAME):$CentralAdminPort*"}While ($CentralAdmin.Status -ne "Online")
Is trying to match the URL from the object ($_.Url) to a url that has the port number on the end of it. If you are running on port 80, the port number will not be on the URL in the object and therefore will never match which means that the object will never return "Online" and thus creating a never ending loop. I'm not sure if this changes if the port is not the default port 80, maybe then the object will show the port and thus the script may work in that case. I also don't know if it is documented anywhere that if central admin is running on port 80 to leave the config file blank.
The object referred to is:Get-SPWebApplication -IncludeCentralAdministration
If you run the above and pipe it to select * (ie Get-SPWebApplication -IncludeCentralAdministration | select *) it will show the contents of the object and you can check if your URL section has the port on the end or not.
Hope this helps.