E é claro que eu encontro a resposta imediatamente após postar a pergunta. A partir desta resposta, a solução é adicionar um
[BsonIgnoreIfDefault]
atributo ao ID. No exemplo da pergunta seria:public class MongoObject
{
[BsonId(IdGenerator = typeof(StringObjectIdGenerator))]
[BsonRepresentation(BsonType.ObjectId)]
[BsonIgnoreIfDefault] // <--- this is what was missing
public string MongoID { get; set; }
public int Index { get; set; }
}