NIST recommends a 256-bit private key exponent for DLP with a 3072-bit modulus. From this answer it appears that the range of private key numbers is derived by calculating a prime modulus via $2⋅p$ where $p$ is a 256-bit prime and then adding $1$ to the result (e.g. $2p+1$). If the result $n$ is a prime number and $a$ in $a^2 \pmod{n} \ne 1$, then we can use $n$ as the modulus.
I believe the difference in the recommended size between the private key (256-bit) and the modulus (3072-bit) has to do with the General Number Field Sieve Attack which has to do with the size of the modulus and not the size of the private key exponent. So the modulus needs to be much larger than the private key exponent.
My question is how the 3072 modulus derived? Not to implement my own of course, but to understand how it works. For example, does one simply choose a 3071-bit prime, multiply it by $2$ and add $1$, testing for whether the result is prime? If it is prime then check whether $a^2 \pmod{n} \ne 1$, and if it's not, then we can choose $2$ for the base a random private key exponent that's at least 256-bits and know that the best attacks will still require $\sqrt{2^{256}}$ brute force exponentiations to determine the private key exponent?