Personally, I think it's really helpful when writing a simple workflow to make everything block.  Then, you can lay out your logic without polluting it with a bunch of wait_for calls.  I like @icco's approach of making it optional.