That's a very tempting idea. 
I'll clean this one up and try throwing it out the window in favour of your suggestion. The number of states itself isn't too bad, but the number of valid transitions (stash/nostash/haasync/noasync/needsloop) between them makes my head hurt.