I'm seeing the same thing. Not sure if this is a bug or "behaving as designed" -- but either way it's annoying and unhelpful. It appears that when starting a VM with the nogui option, the running state of the in-guest tools is not passed to whatever vmrun is using to check the status of the tools. If you execute vmrun -T fusion checkToolsState <path to vmx> after starting the VM with nogui, the state is shown as Installed, not Running.
I'm thinking that it might be possible to build an in-guest script that gets the IP address via ip addr, and then use that as the command to run with vmrun -T <path to vmx> runProgramInGuest <script path> Some quick testing seems to show that the runProgramInGuest works even though the state of the tools is not known.