Turned out "no disconnection event" is caused by my faulty phone. I tried another phone and laptop and everything works fine.
Now I'm using method #2, if any one searched for this just use the following. Thanks guys.
This method can run in the background and send notification when station/client connects/disconnects.
- hostapd_cli with -a , from this post
Invoke demonized mode of hostapd_cli with sth. like
hostapd_cli -a /location/of/script.sh -B
and script below: