So it turns out , the root cause was that Custom resources with finalizers can “deadlock”.
The CustomResource “functions.kubeless.io” had a
Finalizers:
customresourcecleanup.apiextensions.k8s.io
and this is can leave it in a bad state when deleting.
https://github.com/kubernetes/kubernetes/issues/60538
I followed the steps mentioned in this workaround and it now gets deleted.