1) You might want to change your e.printStackTrace(); into actual Logging, I use the same code and it works fine no matter how long I wait for it.
2) Noticed the same, not sure which it relates too, however if there's "constant" traffic, it never drops. Sometimes I have to disable the hotspot and reenable it quickly to fix this, but sometimes it's my data plan that drops too... Maybe the operator doesn't want us to hotspot their data plan?