Reworked threading - all callbacks run / fire on the same callback thread