sp_tables blocking my other statements. Who runs it?
You can set up an extended event session with following code. I tested this and it works (at least the way I was calling).  

    CREATE EVENT SESSION [CallSP_tables] ON SERVER ADD EVENT 
    sqlserver.sp_statement_completed
   (SET collect_statement=(1)   
    ACTION(sqlserver.client_app_name,sqlserver.client_hostname,
    sqlserver.client_pid,sqlserver.database_id,sqlserver.nt_username,
    sqlserver.plan_handle,sqlserver.query_hash) 
    WHERE ( [sqlserver].[like_i_sql_unicode_string]
            ([object_name],N'sp_tables') 
        ) 
    ), 
ADD event sqlserver.sql_statement_completed( 
ACTION(sqlserver.client_app_name,sqlserver.client_hostname,sqlserver.client_pid,sqlserver.database_id,sqlserver.nt_username,sqlserver.plan_handle,sqlserver.query_hash)) 
ADD TARGET package0.event_file(SET filename=N'C:\callspTables.xel',
        max_file_size=(50), 
        max_rollover_files=(100)) WITH (max_memory=4096 kb, 
        event_retention_mode=allow_multiple_event_loss, 
        max_dispatch_latency=120 seconds, 
        max_event_size=0 kb, 
        memory_partition_mode=none, 
        track_causality=OFF, 
        startup_state=ON)
        GO