How to create an endpoint without creating sub endpoints?

The rewrite rule added by:

add_rewrite_endpoint( 'my-endpoint', EP_AUTHORS );

is

author/([^/]+)/my-endpoint(/(.*))?/?$

=>

index.php?author_name=$matches[1]&my-endpoint=$matches[3]

so it assumes anything after e.g. /author/henrywright/my-endpoint/....

You can try instead to replace it with add_rewrite_rule() e.g.

add_rewrite_rule( 
    '^author/([^/]+)/my-endpoint/?$', 
    'index.php?author_name=$matches[1]&my-endpoint=1', 
    'top'
);