V8086 mode is exactly how Windows 3.x/9x ran legacy DOS boxes and how DOSBox-style emulators and some real-mode BIOS-call shims in early Linux VESA/VBE drivers executed 16-bit code without leaving protected mode. The IOPL-gated #GP-then-emulate trick you simulate here (CLI/STI/IN/OUT trapping to a monitor) is the same mechanism VME (CR4.VME) was added to accelerate in hardware.