As I see you update LPT for switching screen, in this case when you are using 144 LPB's, much faster to use 2 LPT's, and just switching between them by ports 82h,83h, if there are n*1000h difference between LPT start addresses, then enough to change 83h only ( ex LPT1 at 1000h, LPT2 at 2000h, then C1h, or C2h to port 83h) if the difference is less than 1000h, then changing of port 82h is enough.
Do you use palette changing only for blacking out the screen?
I meant for this case is much faster to change active LPT to EXOS LPT (it shows a blank screen)
The start address of EXOS LPT can get from address 3bff4-3bff5h at FFh segment, it is 4000h less then the real Ninck address.