feat(): unpatching unintended asynchronous patching

Previously some calls to addManipulationListener() to add detection
for calls in a  section of a controller threw errors because
the synchronous patching had not completely removed earlier patching before
the asynchronous call. In this version a call to removeManipulationListener() is
added before the new addition of addManipulationListener() for the asynchronous case.
This passes tests for both synchronous and asynchronous manipulation, but may not
be the desired solution.

#1