I’ve looked into the SqlServerConnection class and it looks like the CommandTimeout is not set before executing a request. When this option is not set, C# will kill the command after 30 seconds which explain my problem. It could be an improvment to configure the CommandTimeout as a configuration to make sure that a client with a lot of job will work fine.
I’ve been trying to increase the performance of my setup in Azure and it seems that the new SQL Azure (Basic, Standard and Premium editions) is not working fine due to performance. I switched back my database to a Web and Business Edition and everything is ok.
My tips for now would be to use Hangfire with SQL Azure Web & Business edition (or with an on-premise SQL edition) since the performance of the new service tier is not good enough.