The Linux kernel added PTRACE_SEIZE and PTRACE_INTERRUPT requests recently. gdb and gdbserver should be changed to use these when available.
PTRACE_INTERRUPT would be helpful for the bug #14559 and bug #9425. Also it would solve a similar problem that arises when the inferior uses signalfd.