Gate finding B05-2: adopt_held_inbound is only reached through hand_over_held_inbound, which skips a None predecessor, and both runner callers pass a candidate freshly built by _create_adapter for the same platform as the replaced instance. So predecessor is never self and is always a TelegramAdapter; the guard was dead code. Also use the file's own `events = list(held); held.clear()` idiom.