Hi wpicotte - I'm sorry, somehow I missed this post. I'll try to help if I can.
Regarding your first question, I'm not sure it's possible to do it purely in .htaccess. It would be easy to rewrite mysite.com/container/resource.html to mysite.com/container/cat1/resource.html, that can be done with a simple regular expression. But the problem is you have more than one category. How do you know whether mysite.com/container/resource.html should be rewritten from mysite.com/container/cat1/resource.html or mysite.com/container/cat2/resource.html? There's no way to determine that from the level of the web server (.htaccess) because the web server doesn't know what category the resource is in.
MODX knows that, however. So you could write a snippet that would look at the incoming request, determine which category the resource is in, and return the appropriate page. If you want to go that route I could help with the snippet. You'd also have to do something about the way URLs for those pages are generated. Wouldn't it be easier, though, to just turn off the "Use Friendly Alias Path" setting and have urls like mysite.com/resource.html? Do you really need the "container/" part?
If you really have to have "container/" as part of the URL, you could turn off "Use Friendly Alias Path" and put "container/" in the alias for each resource, so the alias would be "container/resource.html"
For canonical URLs, you should use the full URL of the page, so you could use [[~[[*id]]? &scheme=`full`]] or [[!++site_url]][[~[[*id]]]] or
http://www.mysite.com/[[~[[*id]]]]
For redirecting the blog URLs, you might be able to do it in a single line with a carefully designed regular expression. Can you give the actual structure of the old and new URLs? If there is a predictable relationship between the old and new URL it might be possible. Otherwise they would have to be done one-by-one.