Fix callable
Use callable instead of custom type erasure
Clean up task and protect against too perfect forwarding