Нет, LWT работает не так.
Брокер будет публиковать LWT только в том случае, если время ожидания клиента (или сокета истекло) без отправки клиентом сообщения об отключении.
Ничто не мешает вам вручную опубликовать то же сообщение перед вызовом disconnect()