Ensure collection isn't stopped if a collector throws an exception

Move self.collect_running = False to finally: otherwise this prevents collect() running again if a collector throws an exception.