osdc: fix Journaler write error handling [giant backport]

Since we started wrapping the write error
handler in a finisher, multiple calls to
handle_write_error would hit the assert()
on the second call before the actual
handler had been called (at the other end
of the finisher) from the first call.

The symptom was that the MDS was intermittently
failing to respawn on blacklist, seen in #10011.

Signed-off-by: John Spray <john.spray@redhat.com>
(cherry picked from commit 762eda88a18ba707bd5410f38e21e95c4a6b3a46)