thanks so much for writing this, unlike LSH there are very few articles on HNSW for some reason, while it's one of the most efficient (and relatively simple) nearest neighbors search methods out there. There is a precursor paper by HNSW author which explains the rationale and has interesting links to network science and neuroscience: https://arxiv.org/abs/1507.06529
I personally think both LSH and HNSW should be added to standard CS curriculum because of generality and so many immediate practical applications.