I'm fine with adding timeout to this list, but I'm nervous about pending.

For outgoing calls, pending means we're waiting for a response from the other side, so if we get an incoming call (the chat window being for the same person), then we should probably be handling it differently, especially as they've probably just got the timing exactly wrong for us and the call requests have crossed over the networks (that's going to be fun to handle, even with call ids).

If we're already in an incoming pending call state, then getting another incoming call coming in is also likely just wrong (although the call hangup may just have got lost), although we should probably handle that cleanly in some manner once we have call ids.