Wow I think you need to try HostAPd again.
Never actually used hostapd, didn't need it (no security on my AP, and no security needed, due to physical isolation). Just used the standard drivers, with some atheros card, and did an ifconfig command to put the wireless device into AP mode. This configuration was never stable for long periods, and never worked well with Apple clients (not with apple APs, which is what I replaced it with). Biggest single problem: After a few hours or days of running, the kernel would start spewing "ath0: stuck beacon; resetting (bmiss count 4)" messages, and only a reboot cured those. If those messages start coming out at a high rate (a few per second, or a few hundred per second), then the kernel will die. Second problem (and I can't remember the details and haven't found them in my logs): Apple client 802.11 implementation do something weird with power management on the link, which is incompatible with the FreeBSD AP implementation (this is low-level stuff, not hostapd stuff). This causes the power management to go haywire, and the links default to the lowest speed; we were getting a single-digit Mbit/s for Apple clients (both MacOS and iOS), and 40-50 Mbit/s for other clients. After much research, I concluded that neither issue is going to be fixed anytime soon in FreeBSD (nor in OpenBSD), and decided to just get a commercial AP and get on with life: For an investment of $90 or so (the cheapest Apple Airport, picked up on the way home right at the Apple store) all the problems were solved; it works perfectly boringly, and gives zero trouble.
Just looked it up: I tried two different Atheros-based mPCI cards; the first one used the 9285 chip, the second one the 9287. Same problems. This was FreeBSD 9.0.
Since then I've been very leary of trying to use a general-purpose OS as an AP. It may be possible, if you invest enough time into getting the perfect hardware (the one that is supported by perfect drivers), and tune and tweak everything optimally. You admitted above "it took a little bit". It wasn't worth my time.