Custom node template with related node teasers
A valid "view_mode" should work with node_view and that approach looks reasonable.

However, if it's proving problematic, you can also use Views with views_embed_view

e.g

print views_embed_view('viewname', 'display_id', $node-&gt;nid); // node id contextual filter