JavaScript (V8), 380 354 329 bytes
-25 thanks to AUsernanme@A username
t=>` ${"_".repeat(m=Math.max(...(l=t.split` `).map(d=>d.length)))}__ ${"/<"[j=+!l[1]]} ${l.shift().padEnd(m)} ${"\\>"[j]} ${j?'':l.map(d=>"|\\"[w=+!l[++j]]+' '+d.padEnd(m)+' '+"|/"[w]).join` `+` `} `+"-".repeat(m+2)+` \\ ^__^ \\ (oo)\\_______ (__)\\${n=' '})\\/\\ ${n}||----w | ${n}|| ||`.replace(/\n/g,` `+n)