Can BVH construction happen on CPU?

No, optixAccelBuild will always run as GPU kernels. They are also much faster that way.

Have you seen the mega-geometry presentation which shows how fast AS building on the GPU has become?

https://forums.developer.nvidia.com/t/optix-sample-for-real-time-animated-subdivision-surfaces/331986

See this video https://www.youtube.com/live/ucRukZM0d1s?si=pbkGY_icryAJ0qCg at time 1:50:10.

Though doing parallel work on the CPU while building an acceleration structure is possible because optixAccelBuild takes a CUDA stream argument, which means the function returns to the CPU immediately and will run the GPU kernels asynchronously to that. So if you have any CPU work to do while the acceleration structure is built on the GPU, that could run in parallel, even in the same thread.

Make sure to use a non-blocking CUDA stream. I usually avoid the default CUDA stream 0 (zero) for that but create my own CUDA stream.