Hi Raj,
Can you confirm if it is 2 - 3 seconds or minutes you get notified ?
As of i know 2 - 3 seconds is not bad and also even if you write a powershell script to fetch the service failure capture on the server where the service is located that also will take 2-3 seconds.
I would give a suggestion you create a Event based alerting rule --> Use system log for the log location and then search for the event id and description what it appears when it crashes.
Event id: XXX
Event source: XX
EventDescription: The Critical service crashed / or what your Event body contains for that.
Try and see if Event based rule is faster than service monitor.