 
     _update_state: (state_error, cb) =>
         dbg = @dbg("_update_state")
+        if @_update_state_cbs?
+            dbg("waiting on previously launched status subprocess...")
+            @_update_state_cbs.push(cb)
+            return
+        @_update_state_cbs = [cb]
         dbg("state likely changed -- determined what it changed to")
         before = @_state
         @_command
-            action : 'status'
-            cb     : (err, r) =>
+            action  : 'status'
+            timeout : 60
+            cb      : (err, r) =>
                 if err
                     dbg("error getting status -- #{err}")
-                    cb?(err)
                 else
                     if r['state'] != before
                         @_state = r['state']

    saving:
        desc     : 'The project is being snapshoted and saved to cloud storage.'
        to       : {}
        timeout  : 60*60
        commands : ['address', 'copy_path', 'directory_listing', 'read_file', 'network', 'mintime', 'disk_quota', 'compute_quota', 'status']

    closing:

                        dbg("got new state -- #{@_state}")
                        @_update_state_db()
                        @_update_state_listeners()
                v = @_update_state_cbs
                delete @_update_state_cbs
                for cb in v
                    cb?(err)

    state: (opts) =>
        opts = defaults opts,
