emacs is probably wrapped, and there happens some ARG0 rewriting down the road. It might be that killall does not use the original command line, but instead the actual ARG0 of the process to decide whether or not it should kill something.
It has been mentioned in the inofficial discord quite often, that pkill is a working alternative.
Reading killall man page, it seems limited in the length of the command name, as binaries run from the nix store are prefixed by their path, no wonder killall doesn’t work