The init system will not load a different kernel (what you call target kernel). The kernel always is started first (without a kernel there would be nothing the init system can run on), then the init system is started. If the init system finds the signature it restores the saved state from the disk, otherwise it runs the normal startup sequence.
Also I was having another minor query as to what should happen to a kernel thread if it is hibernated but the user process whose request it was serving was just killed before hibernating the system?
I don't get that. After the system is restored from the saved state it is exactly like it was before before hibernating, so there is no difference in execution if the system was hibernated in the meantime.