Does the same happen if you connect to yourself over localhost / could you get me dumps of the actual packets? It seems like the client is considering the connection to be broken as soon as they get the first packet.
Oh, that's possible - only the other day I had a conversation with someone about how low-level UDP libraries usually do not do URL resolution+caching automatically, and... well, I guess the one I used here doesn't either.