Чтобы подытожить:
update может вернуть при выполнении команду, несколько (Cmd.batch оборачивает их в одну), или ноль команд (Cmd.none), они в свою очередь конструируются только через таски (как бы говоришь «сделай апдейт и запусти таску, как только сработает, и если сработает, дёрни апдейт с обёрнутым мессаджем») или исходящими портами («сделай апдейт и отправь данные джаваскрипту в порт»);