Actually hostapd is capable of setting up multiple access points on the same wifi interface and the same frequency (and even using multiple vlans to have actually separated networks) in case the wifi hardware has support for multiple APs.
The hostapd configuration can be quite complicated especially since the documentation is misleading in many places... Also due to the configuration having to match the hardware, you are often left with trial and error.
What you need a second wifi dongle for, is when you want to create an AP on another frequency. E.g. you need one dongle for a (multitude of) 2.5G networks and another dongle for a (multitude of) 5G networks.
Example configuration, credits to sensepost
The following is a shameless copy of https://github.com/sensepost/hostapd-mana/wiki/Multiple-Networks
Different networks can be created in the hostapd config with the bss keyword. For example, if we take the simplest hostapd.conf as our starting example:
We can add another network with:
However, hostapd will create the second interface as a +1 offset of the original interface’s MAC address. This regularly causes problems for me, and I find hardcoding the original interface’s MAC address to something ending in :00 fixes it. Thus, the complete simplest config for two networks would be:
Depending on your adapter, it’s often possible to create more networks, for example, to add a third network:
Multiple Security Configs
Additionally, the security options for each network can be varied. For example, to create an open, WPA/2 PSK and WPA/2 EAP network at the same time, using the options discussed in Creating PSK or EAP Networks: