I have not read your full post but did see you were having issues with issuing amixer commands from an exec node.
I faced a similar issue and after much digging found that adding the below Env Var to the environment before launching Node-RED solved it.
XDG_RUNTIME_DIR=/run/user/$(id -u) node-red
If you run Node-RED as a service, then you will need to identify the user (often this is pi
) and explicitly set the value e.g.
# get the uid of user pi
id -u pi
# outputs 1000
modify the service
sudo systemctl edit node-red.service
Then add:
[Service]
Environment=XDG_RUNTIME_DIR=/run/user/1000