Empty action; adding a channel?

After calling Blender.NLA.NewAction() I end up with a new action just fine, but it’s completely empty; there’s no channels or IPOs to modify. I see Action objects have a removeChannel and a renameChannel method here, but no addChannel function. So my question is, is it currently possible to add a channel to an action and if so, how?

Additionally, once I have a channel with an IPO bound to it, can I just edit the return value of getChannelIpo and have it change my scene?