Specify that a NodeSocketFloat should have keyframe functionality in a self made empty node editor

I got as far as to actually have the node, they seem to be automatically keyable, but when I drag the timeline cursor the values change although no keys being on the timeline and when I regularly play it the values of the node do not change only when I drag the actual timeline cursor

import bpy

class NodeTree(bpy.types.NodeTree):
    bl_idname = "Node"
    bl_label = "Nodes"
    bl_icon = "NODETREE"

def register():
    bpy.utils.register_class(SoundNodeTree)

def unregister():
    bpy.utils.unregister_class(SoundNodeTree)

if __name__ == "__main__":
    register()
class DelayNode(bpy.types.Node):
    bl_idname = "DelayNodeType"
    bl_label = "Delay Node"
    bl_icon = "NODE"
    bl_width_default = 200.0

    def init(self, context):
        self.inputs.new("NodeSocketFloat", "Input")
        self.inputs.new("NodeSocketFloat", "Delay Time").default_value = 1.0
        self.outputs.new("NodeSocketFloat", "Output")

    def draw_buttons(self, context, layout):
        layout.label(text="Delay Node")

This is an old limitation in Blender.
Discussed previously here: https://github.com/LuxCoreRender/BlendLuxCore/issues/167
There are some ideas for workarounds in there, maybe it helps.