Implement a wrapper process that monitors child Runnables and restarts them automatically if they fail. The restart logic should include a back-off strategy to avoid rapid restarts in case of repeated failures. Note: This requires Runnable to support being restarted (see issue 'Allow Runnable implementations to be restarted (start, shutdown, start)').
requires #18