QUEUE_USER_APC_FLAGS_SPECIAL_USER_APC was introduced around Win10 1809 while NtQueueApcThreadEx2 didn't exist yet. The flag can be passed in low order bit of reserve_handle but not on wow64 (docs for QueueUserAPC2 say that QUEUE_USER_APC_FLAGS_SPECIAL_USER_APC is not available on wow64 and tests confirm that; with NtQueueApcThreadEx2 that is explicit STATUS_NOT_SUPPORTED while for NtQueueApcThreadEx on wow64 the lower bit if reserve_handle is not translated to flag.
QUEUE_USER_APC_CALLBACK_DATA_CONTEXT was introduced on Win11 around 22H2. With the flag value of 0x10000 it is not representable inside reserve_handle and can only be used with NtQueueApcThreadEx2.