Tl,DR: Yes. But beware that you misunderstand what's going on and this may be a source of vulnerabilities.
An argument of a program can be an arbitrary byte string that doesn't contain a null byte. The limitation with null bytes comes from the operating system. Depending on your programming language and its standard library, a null byte may be rejected, or ...
Yes, it is safe form an error-free perspective.
As long as they are not special characters they should not influence anything.
Take a look at the special characters listed here.
If you do not use any of them in your string there should be no problem whatsoever.
This boils down to a basic networking problem: if the exploit requires you to connect to a listening network service on the target (e.g. exploiting BlueKeep requires you to connect to the RDP service running on the target), you need a way to connect to the target by IP address. You mention the target is behind a NAT, and that port forwarding is not ...