The lmremove functionality does not terminate lingered licenses.
It has been noted that the lmremove functionality, whether implemented via an API call or the lmremove (lmutil) utility does not free lingered licenses.
That would be the expected behaviour, lmremove does not override the linger setting. This is an extract from the license administration guide (Version 11.13.1, page 136) -
When removing by handle, if licenses are grouped as duplicates, all duplicate licenses are also removed. If license lingering is set and lmremove is used to reclaim the license, lmremove starts, but does not override, the license?s linger time. You can protect the unauthorized execution of lmremove when you start up lmgrd. The default for lmadmin is to disable lmremove because removing a user?s license is disruptive.
The only way to recover the license in these circumstances would be to stop the server, delete the borrow cache (from ?C:\ProgramData\FNP\FLEXlm\vendorborrow?) and restart the server. But note this would remove ALL the borrowed licenses.