The failover for re-streaming scenario now seems clear and I think it's a good one to implement in one of the next releases, thanks for the idea.
As for switching among origins, this already can be done via setting up different routes for different origins. So the routes for 2 origins and 2 edges would be:
origin1/live/ -> /o1/live applied for edge1 and edge2
origin2/live/ -> /o2/live applied for edge1 and edge2
You can send me an email at sales@wmspanel.com with examples of your origin streams so I could make sample routes for you.