Changed several parts. Read more...
Turns out that the handler kicks out page faults that were caused by me clearing their user flag. Thus, I had to remove the part where it takes care of it by simply sigfaulting the process. It looks like it's safe because the vm_area holds the permissions, rather than the page table...
So, for now, this version "works". Why "works"? Because it freezes the kernel but the moust after some time of running, for example, calling zip to compress the kernel. (Dunno why yet, should research that much further).