I think we also need to call something like

              if (Threads.active) {
                ThreadListUI.updateThread(Threads.active);
              }

Here. So when we delete a draft we re-render the thread (regardless of our cache in ThreadListUI). I have to look at other cases (e.g. where we aren't in an active thread) but that seems to resolve the problem of deleted drafts still being previewed in the thread list.