Fixed an issue introduced in 6330e9d0332e6152996292a39c42f752b9288c96

- Previous commit introduced a bug that would cause tasks not to be exposed if they changed name after creation
- Added a new unit test for this case
- Ended up removing a lot of the code introduced in the previous commit and replaced it with a much simpler mechanism
- Removed some unit tests for unregister() since I decided that method wasn't a good idea to have