I would encourage you to look at how higher level protocols that utilize UDP actually use it. Classic and well documented examples are DNS (in most cases at least, it's possible to do DNS over TCP but it's really uncommon), DHCP, NTP, and PTP.
All of these protocols have some specific things in common:
- They care about being able to coexist with other services on the same system.
- They care about some degree of data integrity of their messages.
- They are message oriented, not stream oriented.
- They primarily involve very short and often infrequent exchanges of data.
The first two points are trivially covered by any reasonable transport layer protocol (even exotic stuff like TIPC), including TCP. However, TCP is horrible for the other two points, because it requires you to roll your own message framing protocol on top of it's streams for message oriented protocols and the significant connection startup and maintenance overhead means that it's very inefficient for short infrequent exchanges of data.
In other words, the 'feature' of UDP that makes it worth worrying about at all is that it provides the bare minimum for those first two points without getting in your way like TCP does for these types of applications. It also has a bit of an advantage over TCP in that it's trivial to implement either purely in hardware or on a miniscule system with less than 1Kb of RAM and a miniscule amount of storage space for code (this is part of why BOOTP, RARP, TFTP, and other bootstrap protocols originally used it). The disadvantage is reliability and susceptibility to certain types of attacks if using long-lived stateful 'connections' over it without very careful management, but the protocols that use it and care about that handle it themselves (see TFTP for an example of dealing with the reliability issue, albeit at the cost of speed).
Now, there are options that can achieve similar feature sets (or even more comprehensive feature sets) to TCP with far less overhead and still allowing for message oriented communication (primary examples include RUDP, DCCP, and SCTP), they just haven't really caught on for a combination of reasons, so UDP just kind of sticks around.