JFYI, I was just fiddling with PrivateMarshaling and PublicMarshaling samples trying to compile to P-Code and these bombed out on execution and unfortunately it's not possible to compile PDB's w/ P-Code executables. . . Bummer!
My in-process multi-threading impl (based on Curland's approach) is not working w/ p-code compilation (probably for the same reason) too and that's why I tested yours hoping you resolved the P-Code hurdles.