I agree that it should not wait for the server to respond. It should first close the window, ignore any server messages pertaining to the parted channel, and then send the part command. I've always assumed this is how it worked.