Per the title, all commands run by GSS console tasks run as LocalSystem by design, as there's basically no other way they *could* work unless we started shipping login credentials around.
For shipping credentials around, to do that properly (using actual security, not fake security such as storing obfuscated domain credentials in unattend.xml files) requires an inversion of the security relationship built into GSS. When I originally designed it, I was quite explicit that a client being managed is a one-way trust relationship; the client trusts the management server (to give it code to run, etc) but that does not work the other way around - from the management server, securely identifying and authenticating a client needed more work, and most especially more UI work, and without the ability to do that authentication then the server couldn't trust the client. This is because credential sets are security-critical items, and you can't just give them out to anybody; you need to be able to authenticate the places you send them to, not just encrypt them in transit.
Now, when designing the authentication systems in GSS in 1998 I chose ElGamal certs with the intention of adding a half-certified Diffie-Hellman for connection privacy (also, the RSA patent hadn't yet expired); however, it wasn't until around a decade later after GSS 2.5 that it was possible to get approval to work on that, and so one of the bits of feature work for GSS3.0 I did was add the key exchange and start to work towards that. However, there was a lot to be done; UI for the trust relationships in the console to have the clients securely authenticated was needed, and only after that existed would it make sense to attach items like credential sets to tasks and let them be used inside tasks, and we hadn't gone through the design of that fully before the product was cancelled anyway.