Thanks for the suggestion on using postgres background worker.
I tried creating one following the implementation in worker_spi and am able to spawn a background worker successfully.
However, the background worker seems to cause postmaster to crash when I wait for it to finish using `WaitForBackgroundWorkerShutdown.
The function called by the background worker is empty except for logging a message to disk.
When debugging a crash, backtrace from core dump is useful. if you can reproduce the crash, running reproduction with gdb attached to a process intended to crash is more useful.