Initialize allocated watchdog in critical section

The timer interrupts could hit after the critical section but before the
initialization.
Use PANIC instead of printf in example

Blocking operating system functions should not be used in watchdog
callback functions.
Don't fire callbacks in a critical section

Callbacks are now called outside of a critical section, because it is
safer.