NN is probably designed to work for the sponsor. There are too many things going on and all that happens at the client. So that component should be left alone like a black box.
Considering limited time before 5.0.2, best chance is to push your code with minimal changes - hopefully using customlists format. It can then be incrementally generalized without impacting NN or your LBF integration.
Only other NN feature not mentioned in your write-up is that NN templates track creator/owner and user/subscriber. NN limits access to a record unless you subscribe. We changed that approach where owner is automatic subscriber and now use user/subscriber just to show those items first but everyone gets to use all templates throughout.
We rely heavily on db views. Here is the core view that may help :
CREATE VIEW zView_user_templates AS
SELECT cl2.cl_list_slno context_id, cl2.cl_list_item_long context_text,
cl3.cl_list_slno cat_id, cl3.cl_list_item_long cat_text, cl3.cl_creator cat_ownerid,
IFNULL(cl4.cl_list_slno,"") tmpl_id, IFNULL(cl4.cl_list_item_long,"") tmpl_text, IFNULL(cl4.cl_creator,"") tmpl_ownerid
FROM customlists cl2
INNER JOIN customlists cl3 on cl2.cl_list_slno=cl3.cl_list_id
LEFT OUTER JOIN customlists cl4 on cl3.cl_list_slno=cl4.cl_list_id and cl4.cl_list_type=4 and cl4.cl_deleted=0
WHERE cl2.cl_list_type=2 and cl2.cl_deleted=0
and cl3.cl_list_type=3 and cl3.cl_deleted=0;
Since select2 is used for picking the template, it does not have any seq columns.
Would be glad to provide any help you need.