I am looking for a "application tunneling" solution that behaves a similar to an ssl or ssh tunnel but over UDP. One the client end, OpenVPN provides an network interface. I want the client end to just listen on a local port and forward all that traffic over the tunnel it has established.
NOTE: I used the term application tunneling to describe how ssh tunneling behaves vs. how OpenVPN behaves. With an ssh tunnel, a network application connects to localhost:12345. With OpenVPN, an network application talks to the remote IP, which is reached over a tun interface. OpenVPN requires support in the kernel for tun/tap interface, the application tunnel model does not. If someone knows the correct term for this, please let me know in the comments.
OpenVPN can be used in a site-to-site VPN configuration. pfSense has the easiest implementation of this that I've seen around built in; the pfSense box on one end acts as a "server" and the other is configured as a "client", but I put these in "qoutes" because it doesn't matter which end is which to the other hosts on the networks at each end.
Unless configured otherwise, OpenVPN defaults to a UDP port (1194).
If you're looking for 2-way nat traversal with no port forwarding, intermediary servers, spoofing, or DNS hacks you could look at pwnat, based on udptunnel. I haven't yet messed with it but it looks very interesting.
I think you're looking for Datagram Transport Layer Security. It's essentially SSL/TLS but slightly modified so that it will work over UDP. This is roughly the same thing that OpenVPN uses for its encryption, except that OpenVPN predates DTLS, so the implementation details are probably a somewhat different, but not dramatically so.
Luckily newer releases of products like OpenSSL already support DTLS, so the hard work has been done for you.