Descobri porque, bem, alguém me deu a dica global.
Não é culpa do php ou do tmpfs. O culpado foi systemd e seu sistema de segurança PrivateTmp .
Para aqueles que entram no mesmo problema que eu, o serviço php (e provavelmente alguns outros) tem a opção PrivateTmp para true no script systemd ( /usr/lib/systemd/system ).
Nesse caso, um novo /tmp é criado e isolado do outro. Todos os dados salvos dentro são excluídos assim que o serviço é interrompido.
É uma medida de segurança, pois /tmp pode conter muitas informações confidenciais e o script php nem sempre é seguro.
Para desativar isso, basta copiar o script dentro de /etc/systemd/system (para evitar a substituição de suas alterações após uma atualização) e defina PrivateTmp para false .
Você também pode definir dois ou mais serviços para compartilhar o mesmo / tmp usando JoinsNamespaceOf .
Para mais informações > man systemd.exec