ps -eo "%p %r %G"

shows init's process group is 0. The kernel threads have a process group id of 1. With the patch I posted, gpsapp's pgrp is 8. So is the player's. Perhaps the open serial port attached to std(in,out,err) of the player is thus not coincidental but the crux of the problem, and unbinding /dev/ttyS1 from std(in,out,err) is the answer after all.

I'll try it.