Après quelques essais, j'ai découvert qu'il s'agissait d'un problème avec l'équilibreur de charge d'Azure.
Après 60 s d'inactivité, il déconnecte toute connexion TCP en attente.
Après avoir creusé davantage, j'ai trouvé cet article de la FAQ sur les diagnostics MongoDB, et j'ai défini le tcp keepalive sur 120 s :
sudo sysctl -w net.ipv4.tcp_keepalive_time=<value>
et j'ai également défini le socketKeepAlive du MongoClient sur true :
MongoClientOptions.Builder options = MongoClientOptions.builder();
options.socketKeepAlive(true);
mongoClient = new MongoClient(mongoAddress, options.build());
Après ces corrections, le problème semble résolu !