I did check the code, and the wait code looks correct. We do look to see if the parameter exists (the value doesn't matter) and if it's there, we wait for the server to end it's main process, which that code is used elsewhere.
We use this same code to drive our "restart" button as well, so if there's an issue with our code, certainly possible it's a bug we've missed.
Your code looks correct as well, so looks like testing will be needed. I did check our releases, and that was the reason for the 1.1 to 1.2 release. That was a breaking change, since it used to be broken in that it did the opposite.
v1.2.4 didn't contain CS:GO by default, because the template wasn't updated at that time.
You can download the template from https://github.com/PufferPanel/templates/tree/master/csgo and place that json file into /var/lib/pufferd/templates and your panel will then let you select it as a server type.
You would have logs there.
And because you did a reinstall rather than fixing your old config, you got the states of the daemon and panel messed up.
I am not an expert but most likely that's a bad domain configuration. When installing the panel on a fresh machine and using the ip and not a domain it works like a charm.
Are you using nginx or Apache?
Did you follow the tutorials for the one you are using?
Did you correctly configure your subdomain?
Is this an ubuntu machine or a webhost with ssh access?