So for an initramfs, you are putting together a filesystem from different sources (sysroot, busybox, kernel modules and overlay).
Busybox is the package (also used by buildroot) that compiles all the common system utilities (like sh, grep, mount, tar, etc.) into a single binary. Like this you can include a lot of tools while still keeping a minimal footprint. If you want a more advanced filesystem you could also use buildroot, which includes build scripts for more high-level utilities like wpa_supplicant, hostapd, etc. The output of both busybox and buildroot is a folder with the basic filesystem. You need to add the libraries from your toolchain (sysroot) and the kernel modules.
The overlay is just a folder with files you need to add or edit. As last step in the compilation process, you copy this folder over the filesystem and overwrite the existing files with the changes you’ve made.
As a reference, my overlay has the following files:
Did you try to boot my initramfs? It should work for you, only the device drivers are not loading.