Will Linux start killing my processes without asking me if memory gets short?

I was running a shell script with commands to run several memory-intensive programs (2-5 GB) back-to-back. When I went back to check on the progress of my script I was surprised to discover that some of my processes were Killed, as my terminal reported to me. Several programs had already successively completed before the programs that were later Killed started, but all the programs afterwards failed in a segmentation fault (which may or may not have been due to a bug in my code, keep reading).

Why can’t I kill a SIGSTOP’d process with a SIGTERM, and where is the pending signal stored?

I am using Debian stretch (systemd).
I was running the rsyslog daemon in foreground using
/usr/sbin/rsyslogd -n
and I did a Ctrl+Z to stop it.
The state of the process changed to Tl (stopped, threaded).
I issued multiple kill -15 <pid> commands to the process, and the state of the process was the same: Tl. Once I did an fg, it died. I have 3 questions.