Rearranged code  to minimize lock contention.
Disable rumble at start, and save start state, used to reset devices at end.