Никакого «волшебно-красивого» варианта нет, вот прямо так dict set msg result $result и так далее. Можно написать свою процедуру, которая будет сразу возвращать dict (см. uplevel, чтобы вызвать кусок кода во фрейме вызвавшей процедуры).
Кстати, будет dict get $msg result, вы доллар пропустили. И ещё кстати, если $opts содержит список аргументов для aide, нужно его «раскрыть», чтобы он не воспринимался как один аргумент: exec aide {*}$opts (Tcl 8.5+).