How to assign ESP8266 access point a hostname that can be resolved by the stations?
I'm unclear on the distinction being drawn here:

the hostname and not mDNS

mDNS, like DNS, and hostname lists are all things a &quot;resolver&quot; would use to map a &quot;hostname&quot; to an IP address.
If you mean &quot;how do I use DNS instead of mDNS?&quot;, you'd need to have your ESP8266 running a DNS server.  And for clients to be aware of it you'd probably have to be running a DHCP server as well.
By the way, the examples list for the ESP8266 Arduino package contains a DNSServer/DNSServer example that appears to do exactly this.  I have just tested it.
This is the exact code I ran out of the ESP8266 Arduino github repo at the tag for the version of the ESP8266 Arduino core I tested it on, 2.7.4.