Совершенно корректно это время подсчитать невозможно (если только не отсылать на сервер данные о всех перемещениях и нажатиях пользователя на странице — а не только о тех, которые инициируют какое-то общение с сервером).
Чуть более корректно можно подсчитать, анализируя все обращения клиента на сервер самостоятельно. Скажем, пользователь открыл форму регистрации в 10.00. Мы знаем, что на её заполнение в среднем уходит 2 минуты. В 10.10 пользователь нажал на «Зарегистрироваться». Вероятнее всего, что реально он на сайте провёл около двух минут (отвлекаясь на что-то ещё), чем все десять минут.
По идее, составив табличку, где будут прописаны средние времена работы с той или иной страницей/действием + анализируя логи, можно более или менее корректно высчитать время работы человека на сайте.
В одном из проектов, к которому я имею отношение, мы считаем время по подобному алгоритму, правда, табличка у нас довольно упрощённая. Но и время нам нужно знать лишь приблизительно.
Но, может быть, есть и онлайн-сервисы, которые умеют подобное. Может быть кто-то ещё подскажет.