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.

Can I limit a process to a certain amount of time / CPU cycles?

We have a script which runs on our web servers, triggered by customer action, which initiates a unix process to generate some cache files. Because this process acts upon files supplied by our customer, it sometimes misbehaves, running so long that the PHP process which spawns it times out or using so much CPU time that a sysadmin will kill it.