What are the pinned memory limitations on CUDA for WSL2?

The maximum available amount of pinned host memory depends on internal details of the operating system, not CUDA. cudaHostAlloc is merely a thin wrapper around OS API calls. To date I am not aware of any formula that would let one determine the maximum amount of available pinned memory up front, for any operating system supported by CUDA. You might want to inquire with the vendor of WSL2.

I will note that pinning memory to physical addresses is somewhat anathema to virtual memory management which underpins all modern operating systems. The idea behind providing pinned allocations is to support the creation of buffers of modest size (in the MB range) suitable for DMA, in particular for use by device drivers. Pinning large portions of system memory is not part of OS design philosophy and may cause issues, such as slowing down system memory allocations.