DataFlash: make it safe to do DataFlash logging from timers

this uses a non-blocking semaphore take if we are in a timer
process. Useful for logging failsafe events