Oven cooking queue problem: need help to determine its nature CS community!

I'm more of a practical programmer than a computer scientist, so I need your help to find a solution (or at least point me into the right direction) to an extremely practical problem related to cooking food in the oven.

Problem

I have N ovens and I have multiple various ingredients to cook in them.
Each ingredient has certain preparation (e.g. peel the potato, cut the meat, etc.) time and oven cooking time. At time 0 we start preparing ingredients and putting them into the oven to cook. I need an algorithm to find the most optimal arrangement for the queues of these N ovens, so that it takes minimum time to finish cooking all of the ingredients.

Additional note: each ingredient is cooked at specific temperature, so no 2 ingredients can be cooked simultaneously.

Example

2 ovens: O1, O2

7 ingredients:

A (PT 200, CT 400)

B (PT 180, CT 380)

C (PT 80, CT 240)

D (PT 60, CT 180)

E (PT 40, CT 120)

F (PT 20, CT 60)

G (PT 0, CT 20)

Where: PT - preparation time, minutes; CT - cooking time, minutes.

I solved it simply visually and found that optimal solution looks like this:

Time: action

0: put G in O1
20: take G from O1, put F in O1
40: put E in O2
80: take F from O1, put C in O1
160: put take E from O2, put D in O2
320: take C from O1, put A in O1
340: take D from O2, put B in O2
720, take A from O1, take B from O2 -- finished in 720 min!


Visually it looks like this:



Conclusion

In a search for an answer I found that problem cannot be solved by simply sorting ingredients in some order, as changing the timing on one of the ingredients can dramatically change the cooking order: sometimes ingredients need to wait for certain time, even though they are prepared and ready to be cooked -- the priority queue can change completely!

Question

Whoever sees any similarities with certain mathematical or CS problems (Knapsack? Packing?), please point me in the right direction. Or, preferably, point me to the solution, which surely must exist for such an obvious problem.

Thank you!
This problem is NP-hard: it is a more general version of Minimum Multiprocessor Scheduling. You should not expect efficient algorithms that compute the optimal solution in all cases. 

The main difficulty is finding out what is the "best" oven in which to cook an ingredient. Once you know (in some way or the other) which ingredients should go in which oven, you can not go wrong by queueing them based on their preparation time.  

So one way to compute the best solution is as follows: perform a cycle in which you try all possible assignments of $K$ ingredients to $N$ ovens, which is $N^K$ possibilities. For each of these possibilities, compute the solution based on queueing by preparation time in each oven. The best of all solutions you generate is the optimal solution. This of course will only be practical if $N$ is very small (like in your example) and $K$ is also small.