Using the link in a normal a tag is totally ok and intended use case for node://uris.
Neos.Neos:NodeLink expects a node. The property you are passing is a string that contains the node://uri or the node://uri converted to a normal uri by Neos.Neos:ConvertUris. That is why NodeLink complains.
If you need the actual node you should consider using a property of type reference which you can pass to Neos.Neos:NodeLink for linking. node:// is only for linking purposes.
In edge cases you can use the identifier behind node:// to find the actual node in the cr.