This thread sounds like the process could be simplified by using NetCat (nc).
On the Kindle end of things, see if it was included in your Busybox build.
(/bin/busybox will list everything included)
NetCat is a very old, very basic, networking tool - you can find builds of it for any operating system that might be in use to talk to the Kindle.
What NetCat does is tie stdin/stdout to a network socket, either TCP or UDP
What you send to its stdin goes out on the network, what it receives appears on its standard out.
Ask google about
If you need any sort of stateful communications (state-machine) try NetExpect.
That probably isn't on your Kindle - you may have to add it.
Another (good) choice for maintaining state (at either end) is to do it in Lua.
The Lua vm is already installed on your Kindle (at least the ones I know of).
And Lua is available for anything you might possibly be using to talk to the kindle.
Lua + NetCat will handle just about any network remote control situation you can dream up.
Another thing to check on your Kindle -
See if the network bridge is included in your kernel build.
Then just bridge all of your interfaces into one, talk to the bridge - the bridge will send your packet out usb0, wan0, 3G, etc - whatever you have bridged together - as appropriate at the moment for you.
Think of it as a network bridge box (it is).