When calling a service action, the platform seem to internally set a fixed 100 seconds timeout on the request, so if the action takes longer then that, a "time out" exception is raised on the "Client side" but the action will keep running on the "server side".
I'm not sure if i'm missing a setting here, but in case i'm not, my suggestion would be to either raise the 100 seconds timeout or make it configurable when calling service actions.