with those requirements, WebGL is almost out, i've seen some examples and the fps is really low, if you include game logic in javascript, depending on the browser, all of that javascript will be loaded at once, and that is not good. but you can use it if you use something like node.js to move your game logic to server side and make ajax calls. JQuery makes this task really easy.
the real deal is server load. you WILL need a server if you go the WebGL way. not only for multiplayer, but for all modes. unless make a package with your JS files and send it to the player, but that only works for PC/MAC and exposes all your code...
as for the Unity, its a pretty good engine and you should be able to reuse much of your voxel engine. just remember that you only need to subdivide the blocks when they are punched by the player and you don't even need to have all that chunk in memory. you can load only 3 layers for example. no way the player will break through three blocks faster than you can load the next three.
you can just generate a giant piece of the world in the world creation and store all that in disc, unload all. then load only the 3 superficial layers, capping the horizontal side of the layers to the players LOS. for the next 9 layers, store in memory the "block type id" and the "block id" (the last represents the id for the serialized block structure) for each block. every time the player breaks a block, you load a block on the same line of the block that he break, keeping the 3 layers of fully loaded blocks and the 9 layers of block ids.
all the numbers on the above description were arbitrary and will need some play test to tweak, but should save some memory, at least compared with the minecraft-way-of-loading-things. I was very surprised when i discovered that minecraft loads then entire topology of the chunk...
as for mods, if you use Unity, at least on windows you can use the Managed Extensibility Framework (
http://mef.codeplex.com/ , the link is outdated because MEF now ships with the .net framework, but should give you an overview) also, for the WebGL solution, mods shold be straightforward, as all you need to do is to load a js file. The only concern about the loading of a js file is that you have no control over what that file will do.
I'm yet looking for mod in the Mono framework (as that it's what Unity uses).
in the very end, the choice is yours, the two solutions are managed, the two will have high memory requirements to do what you want. The only other solution i can think of is using plain old C++ with DirectX or OpenGL. that will give you more control over the memory, but will be harder to port for mobile devices.