Если ваша аутентификация пользователя каким-то образом основана на сеансе, то ответом на все ваши "неожиданные" случаи (которые на самом деле будут нормой - люди редко выходят из веб-приложений) будет то, что эти пользовательские слоты станут свободными, когда время сеанса истекло. Таким образом, вам необходимо изучить модели использования вашего приложения. Если многие люди входят в систему в течение пары минут, но не более того, то 30-минутный тайм-аут сеанса будет означать, что очень немногие люди действительно смогут использовать приложение.
Основная проблема заключается в том, что веб-приложения по сути отключены, поэтому вы не можете отслеживать, что пользователь фактически делает между запросами на страницу. Обычно вы продаете лицензии на такое приложение для определенных пользователей (поэтому, если компания купит 20 лицензий, это даст им 20 имен пользователей и паролей). Тогда вы, безусловно, могли бы предотвратить несколько входов под одним и тем же именем пользователя и паролем, либо отказавшись от второго входа, либо деактивировав предыдущий (что, вероятно, является лучшим подходом в случае, если кто-то действительно перешел с одного компьютера на другой без выхода из системы для одного из причины, которые вы изложите).