A further question. On 68Ks without FPUs, do all floating point operations produce exceptions?
Any opcode (floating point or otherwise) not implemented by the CPU will result in an unimplemented/illegal opcode exception.
Further, would it be possible to program an FPGA to emulate (or improve upon these trapped illegal opcodes?
Well, however you decide to implement your trap handler, the cost of invoking the exception mechanism is what kills you. For a fast 68060, I'd strongly advocate trap-and-patch, which only goes through the exception handler once for each encountered illegal opcode, over any mechanism that requires the exception to happen every time it hits said opcode.
The next decision is, how to implement the desired operation. Performing complete emulation of floating point on the 68060 will not be that fast (probably faster than a reeal 68882 for well-written, superscalar 68060 code) but I am not sure how you'd invoke an external FPGA device to do it. Unless it's a memory mapped bit of hardware that you can move data to and read back from. IIRC, on the 68020, the CALLM instruction allowed the invoking of external processors but that instruction is missing on later parts.