Tested out head asynchronous controller and fixed bugs in both the head controller and the asynchronous controller in the process. The head controller wasn't properly initializing the head_ik_ member when sending only joint commands, and the asynchronous controller wasn't joining the thread properly before starting up a new one if computation completes without an explicit call to Synchronize().