My understanding is a native component is one built using the Elements language and API’s and installed just like the component elements that are shipped with Elements. That part of Elements not opened up yet in Beta.
Custom components are those built by users, utilizing HTML and (maybe) Alpine.JS and are in the custom section of the components list.
Here’s a link to the Components overview in the Element Docs — It’s a work-in-progress but hopefully it explains thing a little better for you all. Let me know if there are any unanswered questions and I’ll update the docs further!
Super easy, the code you have already written is the same as you’d write in a full blown component. You just need to give it an icon, an info.json file, and ensure the bundle structure is correct.