SET LOCK_TIMEOUT, is it session or statement based?
From the SET LOCK_TIMEOUT Books Online entry:


  "At the beginning of a connection, this setting has a value of -1.
  After it is changed, the new setting stays in effect for the remainder
  of the connection."


All the tests I have performed have reflected this documented behaviour.  Perhaps you are using different connections but getting the same session id?  Use this query to check:

SELECT 
    dec.connection_id, 
    dec.connect_time 
FROM sys.dm_exec_connections AS dec 
WHERE 
    dec.session_id = @@SPID;