Dopo alcuni tentativi ho scoperto che si trattava di un problema con Load Balancer di Azure.
Dopo 60 anni di inattività, disconnetterà qualsiasi connessione TCP in sospeso.
Dopo aver scavato ulteriormente ho trovato questo post delle domande frequenti sulla diagnostica di MongoDB e ho impostato tcp keepalive su 120s:
sudo sysctl -w net.ipv4.tcp_keepalive_time=<value>
e ho anche impostato socketKeepAlive di MongoClient su true:
MongoClientOptions.Builder options = MongoClientOptions.builder();
options.socketKeepAlive(true);
mongoClient = new MongoClient(mongoAddress, options.build());
Dopo queste correzioni, il problema sembra scomparso!