Nach einigen Versuchen habe ich herausgefunden, dass es ein Problem mit dem Load Balancer von Azure war.
Nach 60 Sekunden Inaktivität wird jede ausstehende TCP-Verbindung getrennt.
Nach weiterem Graben habe ich diesen Beitrag der MongoDB-Diagnose-FAQ gefunden und das TCP-Keepalive auf 120s gesetzt:
sudo sysctl -w net.ipv4.tcp_keepalive_time=<value>
und ich habe auch socketKeepAlive des MongoClient auf true gesetzt:
MongoClientOptions.Builder options = MongoClientOptions.builder();
options.socketKeepAlive(true);
mongoClient = new MongoClient(mongoAddress, options.build());
Nach diesen Korrekturen scheint das Problem behoben zu sein!