Execute no longer freezes GUI

Threaded the main execution so that it doesn't freeze the GUI while
running. Broke out the save portion into its own function for better
behavior and maintenance.