The 2nd argument of keWaitForMultipleObjects are the resources waiting for. Checking it can help to find out the confliction.
And,
You can check the IRQL when calling keWaitForMultipleObjects in first. Please refer the MSDN. Calling keWaitForMultipleObjects at IRQL > APC_LEVEL with wrong paraments will cause deadlock.