It is possible that your version of Virtualbox for Linux emulates treatment of floating point exceptions differently, that is, the old DOS style where a floating point exception leads to generation of an interrupt which is routed via the legacy interrupt controller and leads to invocation of an interrupt routine for interrupt 13 instead of an exception routine for exception 0x10.
And this works ok with the W4 kernel.
I seem to remember that most recent versions of Virtualbox for Windows also work this way but I am not sure. In any case, with the PSD, you are on the safe side as it enforces floating point exception handling via exception 0x10.
By the way: this is the most recent version of OS2PCAT.PSD:
https://hobbesarchive.com/Home/Download?path=/Hobbes/pub/os2/system/drivers/misc/OS2PCat_6-0.wpi