The solution/workaround that I decided on was to just delay the change in focus event until after the checkchange listener was finished it's execution.
I'm not 100% with this, but it works for now.
listeners: {
checkchange: function(cc, index, ischecked, eOpts){
if (ischecked){
Ext.create('Ext.util.DelayedTask', function(){
// focus on price input box
item_grid.plugins[0].startEdit(index, 6);
}).delay(150);
}
}
}