Nice demo, but do not use Web.AllUsers collection to retrieve the SPUser Object from SharePoint.

use Web.SiteUsers to retrieve a SPUser Object.

if the user never loged in to the SharePoint Site on which the workflow is runing he/she will not be in the AllUsers collection and you will get an exception.