The DRAINING state is supposed to keep the packet socket alive until the next I/O event, after the creation of the UDP socket. In normal conditions, the next I/O event happens on the UDP socket when the address is renewed. Therefore, the packet socket stays alive for a long time.
It's not clear to me why this state is needed. Once the BOUND client state is reached (so, after receiving the ACK), the packet socket can be closed immediately.