I just noticed in somebody's sample code for wifi_set_event_handler_cb() that they were not calling system_os_task() and system_os_post() at the bottom of user_init().
To see if that was what was interacting with the wifi callback, I commented-out my calls to system_os_task() and system_os_post(). Once I did that I started getting calls to my wifi callback. I tested both STATION_MODE and SOFTAP_MODE.
The callback for SOFTAP_MODE did not occur until I had my phone look for wifi access points.