"Of course" this is just the "high-level", but basic outline of execution of list migration procedure (per list) goes about like this (this is actual outline I used to walk myself through it to be reasonably sure I didn't miss a step or do significantly sub-optimal ordering of steps, the ... dump subscribers and options ... and set member options steps are the ones using the written perl WWW::Mechanize programs):
old list: save old descriptions: description info subject_prefix save start time and dump subscrbers and options (and end time is mtime) update BALUG web page (migrating) send out "last" posting to "read-only": "emergency" moderation update description on list (read-only, etc.) new list/host: create new list: add aliases before notifying list admin(s) set description: short text set tag (from initial cap) set description: web page check/set options (notably DMARC) stop exim (MTA) mass subscribe set member options start exim (MTA) update BALUG web page (new link(s)) first posting to new list