gpg-agent(1) says:
SIGTERM
Shuts down the process but waits until all current requests are
fulfilled. If the process has received 3 of these signals and
requests are still pending, a shutdown is forced.But even if there is no outstanding request, (e.g. just an open gpg-connect-agent client that is not making any requests), the agent doesn't shut down.
Contrast this with the behavior of gpg-agent when it is handling the KILLAGENT assuan command: in that case, it terminates cleanly even when there is a hanging gpg-connect-agent client.
I think the response to a SIGTERM should be the same behavior as responding to a KILLAGENT command, or at least we need a much clearer explanation of why someone might want one or the other.