I was reading a textbook describing the Go-Back-N (GBN) protocol with Finite State Machines as pictured below:

$\Lambda$ just means "initial state" or "no action", depending on the context. My questions are
This is the interactive animations link to GBN https://media.pearsoncmg.com/aw/ecs_kurose_compnetwork_7/cw/content/interactiveanimations/go-back-n-protocol/index.html. Let's say we are sending packet 0, packet 1 and packet 2, and packet 1 is lost beforen it arrive receiver. So when it is timeout, GBN will make sender re-send packet 1 and packet 2, And I found an interesting thing which is,if you try the link with above scenario and you send packet 3 just before timeout occurs,this action reset the timer, because you can see the timeout is postponed(otherwise you will see packet 1,2,3 flying in screen).But according to the sender's FSM, after you send packet 3, timeout occurs immediately, then the sender will re-send packet 1 and packet 2, but it didn't happen as timeout is postponed, which contradicts the fact that time is only get reseted when
base = nextseqnum?On the receiver's FSM, why it needs to set
expectedseqnum = 1and make a packet based on it? why we cannot setexpectedseqnum = 0as the only initialized action?
