There's a decent amount of code duplication between here and ProjectManager.  If you don't think there's a clean way to centralize it, could we add a few comments so future modifiers of this code know changes should probably be mirrored in the other file?  I'd suggest a comment in the timeout handler in each file, and in the place the timeout gets set in each file...