Os arquivos tendem a ser escritos em blocos (subconjuntos dos dados completos), o tamanho desses blocos é determinado por uma combinação da função que está sendo usada e dos recursos do sistema disponíveis. A partir disso, o sistema operacional geralmente tenta otimizar o bloco. Tamanho. O que acontece é que o bloco será gravado na RAM antes de ser gravado no disco e, em seguida, um bloco inteiro será gravado no disco de uma só vez, sem tempo para uma leitura durante a gravação do bloco. Isso leva a uma gravação muito mais rápida do que seria possível.
No seu caso, escrevendo a palavra, "teste" será menor do que qualquer tamanho de bloco escolhido pelo sistema operacional, para que tudo seja escrito de uma só vez. Para o seu teste, você deve escrever um teste muito maior e, provavelmente, definir o tamanho do bloco (embora seja melhor deixar o SO decidir na maior parte do tempo).
Eu suspeito que o que está acontecendo em seu teste é que metade do tempo em que você está pegando o arquivo vazio antes de ele ser gravado e a outra metade ele está capturando-o após o bloco ter sido escrito. Se você tentar escrever uma quantidade de dados maior que o tamanho do seu bloco, eu acho que você verá os arquivos parcialmente escritos.