I've done almost the exact thing you're describing when I wrote the E1 interface for a company that did all sales on the web. I can't take credit for the web front-end, which was written by another consulting company (NOT the JDE web interface). But, that place is now selling nearly $1 million dollars of inventory every day in thousands of daily transactions. It may even be 10s of thousands of transactions because all inventory is referenced and sales orders created in real time. We also did advanced pricing price books, but they were done nightly and moved to the web server for the next day. This was 2 years ago, so I don't recall everything I did, but my interfaces took about 9 months to create. The project was such a success that the entire E1 sales entry system was tossed out in favor of using the web site in-house. I should point out that zero mods were made to the E1 system. We did some copy-and-change stuff though.
Now, on your project. First of all, you don't need a new environment. You can create your tables(reference, or real) and let CNC just create OCM maps right to the SQL server. (Database user/pwds need to be set up on the SQL box to match those in E1, btw.) Just be sure that the table defs are EXACTLY correct in terms of field size and type. With my solution above we went ahead and generated the table from E1 since it was a custom solution from start to finish.
I should mention too that unless something has changed at IBM, you will never get your AS/400 to see your SQL server box. We could never do it anyway. All the updates to the sql db had to be run on a pc server (aka fat client). This only matters for data coming OUT of the 400. Data going in has no restrictions because it's simple to set up an ODBC TO the 400.
Now, on the 'running BSFNs' issue, this company bought MQ Series to handle the communication. They bought the OneWorld connector whatchmacallit. This solution required that they write their own XML parser since that's how that product works. Inventory lookups proved to be too slow with MQ, so they went to GENJAVA for a direct connection to by inventory BSFNs. That solution saved the project because it was 'smoking' fast. Sales Orders and everything else kept the MQ Series route because they were pretty much one-way and had to have guaranteed delivery, which MQ promises.
Now, like I said before, you have enormous latitude here. Lots of it depends on your companies needs, requirements, budget, and your know-how. You can get products like MQ, or the built in Xpi/COM/Java/C APIs. You can also get tricky with Winsock connections, or whatever. I wrote an HTML Server that could maintain distinct statefull connections to E1 once. I guess I’m saying that nobody is going to be able to tell you ‘how-to’ and be right. If you need to do something ‘on the cheap’ then maybe we could throw some ideas out. I like the winsock idea because you can make it multi-threaded and therefore scalable to the number of users. Plus, with C, you can go straight into the E1 system with the interoperability API. Also, I've done it before and I know it works.