Потому что PTRACE_TRACEME не останавливает вызывающий процесс, а значит у родителя нет возможности заказать остановку по системному вызову. Останавливают трассируемый процесс только сигналы и явно запрошенные трассировщиком события.
В частности, вызов execve трассируемым процессом вызывает отправку ему сигнала SIGTRAP.
Можно вставить перед 20й строкой какой-нибудь asm volatile ("int3");
и это тоже вызовет доставку сигнала, останов и трассировку последующих вызовов write.