Currently on reorgs the whole vector is disregarded, and the mode is restarted. This is ok for smaller number of latest events, but in case of a large number (e.g. in the thousands), and especially in a wide block range (e.g. months/years), this will be a huge performance bottleneck.
The obvious optimization is to only re-process the reorged block numbers, removing the reorged logs from the resulting vector and prepending the re-fetched logs.