there are two topologies - one is a global spanning tree, similar to yggdrasil. but then the chain (or snake) simply orders the nodes which are close on the spanning tree numerically based on their public key, and routes via them even if the spanning tree topology changes. So you’re basically swapping between the two topos based on what works best.
(This is based on word of mouth tho so I may have it totally wrong :)
It’s not just that each node has two routing table entries - there are more routes available than just the keyspace neighbours. There are also plenty of transitive paths from other nodes seeking out their keyspace neighbours, and routes to the spanning tree root and ancestors that you learn effectively for free. It is actually surprisingly robust in the testing we have performed so far (some simulation, some with real world devices).
Yes. If nodes disappear then the next bootstrap packets, which currently run at a set interval, will find the next nearest keyspace neighbours and then sending setup packets will allow the network to build new paths. Similarly, the spanning tree also recovers by creating parent-child relationships using functioning paths.
(This is based on word of mouth tho so I may have it totally wrong :)