Simplify #guard exception logic...
Simplify #guard exception logic...

Also change from 'yield' to 'block.call', to work around some weird Ruby
behaviour (bug?): after the 'yield', callback_args becomes an empty
array!  Maybe due to switching stacks between the callback and yield...?

samstokes/deferrable_gratification