discord.ext.tasks.loop automatically reruns tasks by default on some errors. The implementation doesn't seem great though because:
- The error is never logged.
- There is no limit on the number of times it will retry.
- The error may not be something that will be fixed by retrying.
A solution would be to default to not reconnecting. A util in botcore gives us more flexibility to change how things work in the future (e.g. error handling, custom retry logic in some cases, etc).