Lollipop: OpenVPN connects, no data. Jellybean: Connects, gets data
It turns out Lollipop has bugs relating to routing of VPN connections when OpenVPN is used.  This reddit post gave me the clue that the problem was routing on the client side.  After a lot of trial and error, by switching to OpenVPN for Android client (which gives better control over settings) I was able to set up manual routes and get it to connect and work.