Do not ignore error when setting Cache value

Cache.fetch() uses monitor-handle construct when invoking the block for
getting the initial value to be cached. It did not report any error resulting
from the block invocation - this is a good recipe for much hair pulling
during debugging session.

This commit is inspired by the recent problem we had with with swebus
where the invocation to "Cache.fetch() using {}" was successful but the
data returned was always the default one due to an error raised in the
"using {}" block, and that error was silently swallowed. Had the error
stacktrace been logged then the debugging time would have been reduced a
lot.
Reduce scope of monitor-handle block when setting a cache value