I would use Chromium but I can't get it to update. :u
http://getchromium.orgI haven't updated my chromium in like two months because the binaries often have bugs compiled into them and the one I have is quite stable
Custom, Torquescript has a good structure but needs a few tweaks.
Lua is ugly stuff.
Except Lua is easily embedded into most applications and there's already a Lua VM for Java (actually more than one IIRC - ComputerCraft uses LuaJ)
Not many people want to write a custom interpreter but if it bothers you there's also a DCPU for Minecraft and the Redpower 2 computers use FORTH so go have fun with your faffing about
I used to hate Lua but playing with CC for a while helped me adjust and now I quite like it. The lack of implicit then on if statements bothered me for a while, but I got over it (I got over it so hard I have to keep removing my 'then' from ifs when writing Java)
If anything the only thing that makes it bad aside from waaaah syntax is that the standard libraries are missing some really basic stuff, like splitting strings to tables or table slicing or a bunch of other stuff I wrote polyfills for, and tables don't allow the object:method notation for accessing object methods from their library like strings and other stuff do.
Like if I define string.split(str,separator) that's on the string metatable, and I can then access that via string.split(str,sep) or str:split(sep). This is not the case for the table library - tab:slice(start,end) doesn't work for accessing table.slice(tab,start,end). This only really bothers me because it's an inconsistency, not because of the missing functionality there.