[SYCL] Avoid a UR query per asynchronous allocation (#23336)
Every `async_malloc`/`async_free` call checks whether the queue is in
graph native recording mode, and `queue_impl::isNativeRecording()`
implements that check with a `urQueueIsGraphCaptureEnabledExp` call.
That is a backend round trip on every allocation.
Native recording cannot be active for a queue unless some queue in its
context has started recording, and the context tracks that with a plain
atomic counter. Consult that counter first in the asynchronous
allocation entry points, and only query the backend when recording is
actually active somewhere in the context.
Assisted-By: Claude