OK - first things first. There is no such thing as a script running as root in a non-elevated state. By definition, if the script is run as root, it is run with root (elevated) privileges.
So, there’s something called a "chroot’ bit. This allows programs to run as the “owner” of the script with all of the rights and privileges that come with it.
I’d need to see what you’re talking about with your questions 1 and 2. It could be that you’re experiencing some discontinuity with what’s actually happening with what you think is happening. In my experience, unless the script takes steps to change its running user, everything that Asterisk kicks off (if it is. in fact, running as the asterisk user) will run as the asterisk user. It’s one of the basic tenets of Unix user security.
In 2, you talk about ‘sudo’ access. Scripts (IMEO) should not run out of sudo. If your script needs to run as ‘root’, you may need to reassess what the program is supposed to be doing and adjust your user and group permissions to manage the processes without giving unfettered access to a process like asterisk (which has several publicly facing interface and a huge security attack surface).
So, rather than “I have the same generic problem”, we’d really rather talk about what you are trying to actually accomplish so we can help you do it in a way that is both sustainable and safe.