Replace QSocketNotifier with custom event

This brings queued method invocation in line with gen_process and stop
handling.