As informações de contexto não têm escopo (no sentido de escopo de variáveis de linguagem) e estão vinculadas ao tempo de vida da sessão. Uma vez definido, as informações de contexto permanecem no valor definido até que a conexão seja fechada (a sessão termina) ou até que um novo valor seja definido. Como a execução em uma sessão é sempre sequencial, não há questão de simultaneidade.
SE você definir as informações de contexto em um procedimento, qualquer gatilho executado posteriormente nessa sessão verá o valor das informações de contexto recém-definidas. Definir o valor do ID do usuário nas informações de contexto, como você propõe, e usá-lo em gatilhos é o exemplo típico do uso de informações de contexto e é perfeitamente seguro em relação à simultaneidade, pois basicamente não há simultaneidade. Se você planeja definir as informações de contexto em um procedimento armazenado e, em seguida, confiar nele em um gatilho que é executado devido a exclusões que ocorrem no referido procedimento, seu lote ainda não foi concluído, portanto, de acordo com o artigo que você vinculou, você recupera as informações do conetxt do
sys.dm_exec_requests
DMV ou do CONTEXT_INFO()
função. Ele ainda não será enviado em sys.dm_exec_sessions
, isso só pode acontecer depois que você sair do procedimento armazenado e concluir qualquer outra chamada no lote T-SQL enviado ao servidor (o 'request').