All above is correct, but there is still a problem:
In order for hostapd to create a usable accesspoint network on wlan0,
a necessary precondition is that the wlan0 interface has had a previous connection as a client to another wireless network.
If the wlan0 interface has not been connected as a client to another wireless since booting, then although a network created by hostapd will be visible to potential clients, still they cannot successfully authenticate or associate with the new network.
This feels like a driver problem.