Are there any possible workarounds to these problems that I may have missed?
Is it possible to trick the engine into 'thinking' it is in focus?
I dont have a solution sorry but i guess(!) this is caused by operating system / directx itself not the engine. A dirty hack would be a second (hidden) process controlled via sendmessage fex doing the job, setting focus / playing a sound then. But why do u want to switch to another window, while engine is in fullscreen ? Maybe theres a simple trick. HeelX well knows api-calls from lite-c, could be useable here. Just wild-guessing ^^. greets.