@Capehill
There is too much Disable()/Enable() usage in your code anyway, most of it can be removed or replaced by atomic accesses.
But simple Newlib C library functions like strlen() and strlcpy() (the usually better replacement for strncpy()), which don't do any I/O and are reentrant code, can even be used in interrupt code and inside Disable()/Enable().
An exception to that might be functions like memcpy()/memmove(), but only for very large copies. On some systems they may be implemented using DMA, which needs to wait for the DMA operation to be completed and that might even be an IExec->Wait().
A tool like top/tequila should display CPU usage of other tasks, not cause much additional CPU usage, especially if it's without a reason like in this case