[L0] Use immediate command lists for external semaphore wait/signal (#21930)
The L0 spec requires zeCommandListAppendWaitExternalSemaphoreExt and
zeCommandListAppendSignalExternalSemaphoreExt to be called on immediate
command lists. On Gen12, queues default to regular (non-immediate)
command lists, causing these calls to fail with
ZE_RESULT_ERROR_INVALID_ARGUMENT.
Fix by obtaining an immediate command list via getImmCmdList() when the
queue is not already using immediate command lists, ensuring external
semaphore operations work on all platforms including Gen12.