1) the scope of your ngapp is entirely up to your design. This is not something driven by Kentico. It is however some what difficult to attach the ngApp at the body element since it appears the generation of the body element is done by kentioc. We are using Kentico in portal mode. However if you use aspx mode, you may have more control over the master page, including the body element
2) in your layout code, ensure you have a webpart zone element. This will allow you to drag the chat webpart into it. You can position the webpart zone element however you want, alongside your angular markup. One word of caution - depending on the webpart you use, Kentico may load a lot of JS libraries to support that feature. The libraries it loads may interfere with your angular code. Kentico uses require.js to load JS dependencies. I recommend to reference your spa dependencies with require.js as well.
3) this is a tricky one. There doesn't seem to be a module in Kentico that's designed to store raw snippets of html. So far, the spa we have deployed to our Kentico site have minimal dependency on separate views, directive files, or even separate JS. We really want to deploy the artifacts via Kentico as opposed to the file system, so we work within Kentico's constraints