Improving performance with Field Collections?
Update: In the end, I abandoned field collections and created a custom compound field that is attached to the 'course' content type. 

This pretty much eliminated the performance problems. Opening a course node with 130 lessons in the field now takes 3-6 seconds, depending on the server.

And because the field is unlimited multivalue, the delta works a sorting mechanism for the lessons in views, etc.

I also added code to add more than one item at a time as seen here: 

Slow &quot;Add another item&quot; with unlimited valued fields

When there are a lot of items in the field, adding a new item ends up taking a lot of time.

Good resources:


http://www.phase2technology.com/blog/compound-fields-in-drupal-7/
https://drupal.org/project/examples (field example)
https://api.drupal.org/api/drupal/modules!field!field.api.php/7