Мы с коллегой на самом деле просмотрели источник и нашли ответ.
Всякий раз, когда scp собирается напечатать вывод, он запускает tcgetpgrp на стандартный вывод. Это вернет группу управления процессом терминала (при условии, что это терминал). Он будет распечатан, только если группа процессов, управляющая терминалом, совпадает с группой процессов scp. Оказывается, никакой сигнализации не требуется! (Хотя он обрабатывает SIGWINCH для вычисления размера строки прогресса).