kill $( jobs -p ) enviaria o sinal TERM para todos os jobs , independentemente de estarem ou não em execução. Um trabalho pode incluir vários processos, mas apenas o primeiro processo em cada trabalho seria sinalizado (veja mais abaixo).
Sua primeira e terceira e última pergunta têm a mesma resposta. Um trabalho parado não recebe nenhum sinal. Um manipulador de sinal (mesmo o padrão) é executado no processo e o processo é interrompido . Os sinais são entregues quando o trabalho é retomado.
Quanto à segunda questão, acredito que jobs -p apenas forneça o ID do processo do primeiro processo, enquanto jobs -l lista todos os processos pertencentes a todos os trabalhos. Matar o primeiro processo de um pipeline fecha o descritor de arquivo do qual o próximo processo está lendo, solicitando um fim de arquivo em sua próxima tentativa de leitura.