cache alive status inside a plugin is not a good idea. As Yami said, it is not error proof, some plugins/maps can kill players without triggering things that are caught by your plugin.
Doing this in a extra plugin in order to provide a dynamic native is even worth, because you gonna add some calls between plugins and amxx.
Also, is_user_alive doesn't triggering communication between amxx and metamod.
About prethink, better to use engine module forward client_PreThink, unless you want to post hook it or unless you don't want to hook it all the time.