All this works without us diving into the details. What's broken that has you looking at this?
all my reading says the 4 way handshake is instigated by the AP. This appears to be borne out by a wireshark capture yet it is not until the STAtion clicks the connect button that the AP sends the first EAPOL handshake packet. What am I missing here please?