I discovered what my issue was. The callback was coming in through my subscription, but when it first gets assigned to me it only appears as the interaction ID and has a state of Unavailable. All other interication attributes are blank. This was causing an error becuase
public PhoneSystemInteractionDirection CallDirection { get; set; }
my call direction isn't nullable. The error that was thrown was inside of an async method so the error was swallowed.
Not sure why the callback appears this way when it first gets assigned to me. It does immediately get updated afterwards with all the callback's information.