I used to port Unix to 68ks - there were several ways to get around this issue - 68010s could happily take a page fault, or you could use the (tacky and expensive) two 68k thing (few did, it was a real pain).
For a traditional swapping kernel (ie anything prior to SVr2) the only time you ever needed to be able to recover from a page fault was when you did automatic stack extension, there was a simple solution to this, have the compiler emit a "tst n(sp)", or similar instruction at every subroutine entry - because it was an instruction without side effects the kernel could recognise it, extend the stack space (by enough extra to be able to do the next call, hence the 'n') and resume execution by faking the appropriate kernel stack frame