I wrote a VXLAN implementation in Rust. 40% faster than Linux kernel VXLAN on same hardware. Not production yet because I also wrote the memory allocator and I don't trust myself.
The real answer is nobody should stretch L2. But if you must, kernel GENEVE has better performance characteristics than VXLAN on 6.x. Tested on my Threadripper lab in Stockholm.