I think this should stop at the last level that has a consensus fraction above the threshold. We also need to consider the case where the same taxonomic name is used at a particular level, but the higher-level taxonomy doesn't match.

For example, consider that a query sequence has the following assignments:

```
a;b;c
a;b;d
a;e;c
```

The code would compute consensus fractions of:

```
a: 1.0
b: 0.667
c: 0.667
```

so I think the output would be ```a;b;c 0.667```, when I'd expect ```a;b;c 0.5``` or ```a;b;d 0.5```, since there'd be a tie.

Also, how are ties resolved? It seems like it is currently left up to chance, since Python's ```items()``` doesn't guarantee order (not sure if Python's sorting is stable by default or not).