HDFS-8647 makes it easier to reason about various block placement scenarios. Here is one possible case where BlockManager won't be able to find the excess replica to delete: when storage policy changes around the same time balancer moves the block. When this happens, it will cause NullPointerException.
Note that it isn't found in any production clusters. Instead, it is found from new unit tests. In addition, the issue has been there before