Eu fiz assim:
Criei um campo a mais, tipo INT na tabela de usuários;
A cada login, eu pego os numeros de ano, mês, dia, hora, minuto e segundo, tudo junto e gravo nesse campo e numa global;
No OnExecute do menu principal, eu verifico se o valor da global bate com o código gravado na tabela;
Se estiver diferente é porque o usuário logou novamente, então eu forço a saída do sistema e fica apenas o login mais novo ativo.
Assim não tem jeito do usuário logar mais de uma vez. Em vez de bloquear o usuário novo, eu bloqueio o anterior. Quem logou primeiro cai e fica apenas o mais recente.
Ficou simples e bem funcional.