How can I get a full stack trace in my custom plugin log?
By default a full stack trace will only be assembled and logged if an exception is thrown (which is what you're looking at in your 2nd example) mainly for performance reasons - cycling through the backtrace and assembling all of that info is a relatively expensive operation.

Standard calls to MyPlugin::log or Craft::log will get a partial backtrace added to each message.  The depth of that is controlled by the YII_TRACE_LEVEL PHP constant, which Craft sets to 3 by default.

If you want to have them log deeper into the trace, set that to a higher number in your public index.php file, just be aware of the performance implications.

There is some discussions of that constant here in the Yii docs: http://www.yiiframework.com/doc/guide/1.1/en/topics.logging#logging-context-information