If view_update_builder::initialize() throws (e.g. due to permit timeout
under I/O pressure), the coroutine frame is destroyed and the builder's
default destructor runs. Since mutation_reader requires an explicit
close() before destruction, ~mutation_reader() calls abort().
Add a try-catch around co_await builder.initialize() that calls
builder.close() before rethrowing. This ensures readers are properly
closed on all error paths.
Fixes: SCYLLADB-2325
Closesscylladb/scylladb#30203