My DS is like this as well. It can be a nightmare. And not always the obvious solution - you can't force feed them and once they get bigger it's harder to pin them down and change the nappy at the same time (especially if it's a pooey one.)
So coping strategies - firstly, try leaving loads of time to get ready. If you need to go into town before you pick DS up, you probably want to be leaving at 1ish, so lunch ready by 12 and make sure she's ready to go before lunch - so start getting ready at 11 at the latest. Also, lots of pre-warning. "We're going to get changed, then you can do some playing, then it's time for lunch and then we are going into town."
Nappy changes, just for wet ones, learn to do them standing up! They seem to protest less and it's quicker.
Agree with making lunches you can take with you. Sandwiches and other packed-lunch kinds of things. DS does the dithering thing over lunch and it's a pain. Do you eat lunch with her? That can help. Also when DS was proving hard to tear away from his trains my mum hit on a good technique which was to say "You don't have to have any lunch, but I'm really hungry and my tummy is hurting. I need to go and make some food for me now." and he would suddenly declare that his tummy was hurting too and he needed some food as well.
Only other thing I can think of is to try involving the imaginary friends? Tell her it's time for X's lunch (and they could have a tea party) or that X needs their nappy changed, so you could do them both together.