Как можно определить последнюю открытую вкладку сайта в браузере, на JS?
Вопрос составлен ужасно, но если я верно понял - у вас высокая нагрузка на сервер из-за неправильно выбранной технологии.

Чтобы на стороне клиента мониторить события, которые им хочет сообщать сервер, вам нужны websocket или хотя бы long pooling (устаревшая технология на тот случай, если вебсокеты не доступны).

Первое очень просто - клиент держит специальное подключение к специальному websocket серверу, который вы должны поднять на сервере (реализация вебосокет есть на всех популярных языках, начиная с php).
Пример сервера - https://reactphp.org/
На клиенте - штатный https://developer.mozilla.org/en-US/docs/Web/API/W...

Второе - специальный запрос к бакенд серверу на файл, который сервер не отдает до тех пор пока ему не понадобится что то сообщить клиенту (причем каждому клиенту сервер по своему отдает это файл), это реализуется на любом языке очень просто, но не так эффективно как через вебсокет сервер.
Пример -https://github.com/panique/php-long-polling
Вкладки в браузере имеют возможность общаться между собой. При открытии новой страницы, вам нужно просто посылать сигнал, чтобы другие вкладки с вашего сайта само-закрылись или прекратили работу. Таким образом сессия будет работать только с одной вкладки.

Но нужно понимать, что это не спасет вас, если юзер откроет ваш сайт с двух разных браузеров или устройств. На этот случайно нужно уже делать проверку на сервере и если есть сессия где-то еще, то принудительно прекращать ее.