So I noticed the program goes into a state where it's stuck on NRF_BREAKPOINT_COND, which happens after getting into the following writeToLogger() template function. If I comment this function call, it seems to work fine.
template<typename T>
static void writeToLogger(T *data, ...)
{
char tmp[40] = {0};
va_list args;
va_start(args, data);
vsprintf (tmp, data, args);
xStreamBufferSend(nrfLogTaskMsgBuffer, (void*)&tmp, 40, pdFALSE);
}
int main(void)
{
NrfLogger logger;
NrfLogger::writeToLogger<char>("Writing to register address %x", 10);
}

