O -4200 é apenas para destruir o cookie. Os cookies são destruídos ao definir uma hora no passado para eles. Portanto, definir 4200 segundos para trás é tão eficaz quanto 1 segundo para trás.
Para desconectar usuários, existem vários métodos. Você pode ter seu próprio cookie definido com a última hora ativa (defina a hora toda vez que o usuário visitar uma página). No início de cada script inclua uma função que obtém este cookie e verifica o valor que deve conter o último horário ativo. Se esse tempo for mais antigo que o tempo inativo permitido, destrua este cookie e destrua sua sessão também, caso contrário, atualize o valor para o tempo atual.
Claro, você também pode armazenar dentro da própria sessão o último horário ativo, o que é uma maneira muito mais eficiente de remover a sobrecarga de transferência e gerenciamento de cookies.
EDITAR
Abaixo está um código mínimo para verificar o último horário ativo e desconectar o usuário:
function login(){
//check login username/pass etc...
$_SESSION['last_active_time'] = time();
}
function auth(){
if($_SESSION['last_active_time'] < (time() - 1800)){ //1800 is 30 minutes (time in seconds)
logout(); //destroy the session in the logout function
}
else{
$_SESSION['last_active_time'] = time();
}
//do some auth related things
}
Essa é a lógica básica por trás disso. Claro que você precisaria implementar outras coisas que você precisa junto com segurança, verificação, etc...