Thanks for working on this @danielzgtg! I started going down a similar path recently but didn't get nearly as far as you have.
Let me answer a couple of your questions: Yes, IsMSOffice has got to go. Never returning from SLOpen is also a little weird but could be fine. I'd prefer to find a way to make Office work without sleeping forever in SLOpen, but I would argue that going to sleep in SLOpen is better than not implementing SLOpen at all, and I hope that other Wine developers feel similarly.
Is it strictly necessary to set the output pointers to 0xdeadbeef? Would Office work if you just set them to NULL, or if you don't set them at all?
It's good that you added tests, but please only include tests for the functions that you have implemented. The tests need to be able to compile, run, and pass on both Windows and Wine. If a particular test passes on Windows but not on Wine, mark it `todo_wine` and the tests will still be considered to pass as a whole.
I hope that helps!