PROBLEM SOLVED!
A timeout DOES indeed raise JobDone AND sets j.success to false, so there is no issue from the side of B4A! You don't need a try/catch either.
The issue was due to the emulator I'm using: Genymotion.
When the Genymotion emulator starts and there is a network available, and WHILE the emulator is running you cut the network, things go terribly wrong with its internal network driver.
In order to see the timeouts happening, you must start Genymotion with the network already down. In that case, everything works fine.
Thank you all for helping me.