The pool itself is implemented in libdispatch, and Swift's integration with the pool is mostly just calling a function to submit jobs. The libdispatch maintainers don't do most of their work in open source. In the past, they have periodically updated a public repository with the current state of the project, but I don't believe they've updated that yet with this work, and I shouldn't speculate about if/when they will. Unfortunately, that means I can't give you a code pointer.
The best public documentation on it right now is probably the "Swift concurrency: Behind the scenes" WWDC session by Rokhini Prabhu. I believe the threads are just ordinary pthreads; I don't know the answers to most of the rest of your questions.
The technical infrastructure is in place for custom executors, and we're currently using that infrastructure to integrate the main actor. The design hasn't yet gone through evolution. I don't think this affects the non-Darwin implementation of the default global executor, though. I believe the performance concern there is just that the Linux dispatch implementation is a relatively naive and unoptimized thread pool; the way we use it should still be width-limited, which is really the most important property we need.