WP Cron not executing after timespan

Your custom hook is never triggered because you are not subscribing to it the right way!

Context

Although you are calling it in your class function, it is never executed beyond that point.

Place the add_action function somewhere else like in a plugins_loaded hook. Put it outside your class where it can be seen.

Dependencies

Where are the variables $message and $deviceTokens declared? if they are not, the wp_schedule_single_event will fail! So no event is scheduled in the first place!