Restart data connection when stalled?
You can periodically check status of real connection using HTTP GET by Tasker. You can restart the Data again by Tasker in case connection is stalled.

But, its down side is that it'll drain battery faster.