Я вообще не понимаю, есть ли смысл менять sv_lan динамически. Ты проверял, что от этого меняется? Я бы не парился, а задал бы таймаут на проверку авторизации. Значение подберешь эмпирическим путем (т.е. в работе). После того как клиент подключился, устанавливаешь set_task на него с заданным выше интервалом. В обработчике task делаешь проверку флага авторизации. Если его нет, значит это non-steam клиент. Делай с ним что хочешь.
Вообще ты как-то хочешь авторизовать тех, кто авторизоваться не может. Маразм какой-то. Даже если и сможешь, то система авторизации будет отличатся от той, которая применяется для оригинальной авторизации. А значит суть авторизации становится вымышленной.