If you want the session to close when it closes the window then use $ _SESSION instead of $ _COOKIE, now the session will only be destroyed when the entire Browser is closed and not just a tab.
What you can also do is to use a timestamp, for example, after 5 minutes if the user tries to use the page the session will be expired, so you need to save the timestamp in the session every time it loads any page , and then before saving the new timestamp check if the last load has been 5 minutes already
A rustic example:
page.php
<?php
session_start();
$tempo_limite_em_minutos = 5; // 5 minutos
// se já foi definido vamos ver se a sessão ainda está valida
if(isset($_SESSION['TEMPO'])){
$tempo_desde_o_ultimo_carregamento = time() - $_SESSION['TEMPO'];
if($tempo_desde_o_ultimo_carregamento / 60.0 > $tempo_limite_em_minutos){
include 'logout.php';
die();
}
}else{
echo '<h1>Primeiro login</h1><br>';
}
// senão vamos apenas atualizar a sessão e mostra o conteudo que ele quer ver
$_SESSION['TEMPO'] = time();
echo '<h1>Você está logado</h1>
<p>O php é uma ótima linguagem de programação, principalmente se você tem pouca memória no seu servidor</p>';
logout.php
<?php
session_start();
session_destroy();
echo '<h1>Desculpe, a sua sessão expirou :/';