Calling preempt() before plan() is able to reset the preempt_requested_ flag causes the preemption request to get lost. To avoid this issue, we allow a) manual resetting of the request and b) reset the request before leaving plan().
Robert's fork is not required anymore. However, we can't forward to the current branch head because it breaks python2 support.