There is no such thing as 'a kernel process' in this sense: a process is not 'frozen' when it's select()ing, it's blocking *in the kernel*. When an event comes, the kernel wakes up and returns to userspace: no 'thawing' is necessary. select() is just a system call that blocks in the kernel, just like, say, read() often does (and just as lots of other syscalls do).
Creating a new process for every single event seems sure to be far more expensive than just a privilege transition out of kernel mode. My system here can manage about five or ten thousand forks per second, but it can manage well over a million context switches into and out of kernel mode per second.
(As for a process being 'based on' a kernel process, the level of your confusion regarding how processes work in Unix is seemingly so great that I can't even imagine what you intend this to mean. Your last line suggests that you expect it to have a whole new address space of its own, which makes the thing a process-creation-level of difficulty rather than a thread-creation-level, and requires among other things a TLB flush. Expensive, expensive...)