Wraps InspectImageTool.execute's instrumentedCompleteSimple call with an
AbortSignal.timeout combined via AbortSignal.any with the caller's abort
signal, so a stalled provider fails fast with a ToolError instead of
hanging until manual abort. Timeout is configurable via new
inspect_image.timeoutMs setting (default 180000ms, 0 disables). Manual
abort still surfaces as 'inspect_image request aborted' — the tool
distinguishes timeout via timeoutSignal.aborted && !signal.aborted.
Fixes#4165