The destructor used to call async($this->release) and discard the
returned Future. Under Fledge's strict-mode error handler this raises
'should either be used or intentionally ignored', killing the request
the first time a Lock falls out of scope outside an explicit release()
call (e.g. Laravel Pulse's Redis recorders).
Delegating to release() reuses the existing dual-mode logic
(synchronous in-fiber vs. attached-to-pendingOperations when
force-closed) so the Future is always either consumed or tracked
through shutdown.
Adds a regression test that installs a strict error handler and
asserts the destructor neither emits the warning nor loses the
release closure.