For client threads where we want to use our dstack yet we're forced to use NtCreateThreadEx and its kernel-provided stack, we target a wrapper that switches stacks and calls the client thread function. We pass data to the wrapper on the dstack and pass the dstack as its parameter.
Issue: #1309 (closed), #1432 (closed), #2835