The key to having a reliable offensive magic phase is A) the ability to keep casting important spells (by guaranteeing access to key spells, being able to recast any particular spells that you need, and having enough important spells to use up all your dice) and B) having the dice you need to cast your spells - which should be measured as dice or other casting value bonuses you have above your opponent's dispel dice and bonuses.
In terms of spell access, we're alright. Gaze is the only meh spell on our native list, the lore bonus is ideal, and the signature spell is our key spell, so we can spam it with multiple casters. Lack of Loremaster outside of special characters hurts, though, when you get to a high enough points value that you start running out of spells to roll.
MotBA helps a little with dice, but it's still very unreliable. If your original roll included two numbers that were about even it doesn't do much for you. It only really helps in the case that you rolled one high and one low, and even then it's only a chance of helping. The high points cost would be acceptable if the benefit was reliable. I'd gladly drop 75 points for the old +2 dice each magic phase (guaranteed dice that your opponent doesn't get = the whole thing we want here). As it is, it's very costly, and still leaves you with a very fickle phase.
The pariapt helps as well, and its reliability makes it more attractive than MotBA, but at the cost of hurting our magic defense. Alternatively, it can help our defense at the cost of our offense. Problem is, we're pretty vulnerable to enemy magic, and we rely on our own magic to support our troops in their basic battlefield rolls, so neither trade is particularly attractive.
The Mortis Engine is a tricky beast. The tome upgrade is especially potent with multiple low level casters, which is exactly what our kick ass signature spell encourages, but it's pretty much the only tool of its kind to come with its own disadvantage, one that can easily cost us the game if our general miscasts, or if an ogre pops the hellheart. The rest of the engine is quirky. Not bad, certainly, but not amazing. Worth its hefty price tag, I'd say, but difficult to justify over the alternatives, particulalry the gheist.
Other tools are worth looking at, but are available to anybody so I'll skip them here.
In all, I wouldn't say we have a weak magic phase. But our magic phase isn't strong enough to justify our reliance on it. Without vanhels or vigor, ghouls and grave guard aren't so great fighters. Without invocation, skeletons and zombies are terrible tar pits. An enemy that can shut down our magic phase doesn't have too much else they really have to worry about (killer vampires, ethereals, and screams being the notable exceptions). Likewise, we are pretty vulnerable to enemy magic ourselves - snipe our heroes and our army falls apart, blast away with dwellers or purple sun and watch masses of low init models collapse, buff up your units with speed of light or wild form and reap double the carnage thanks to instability, etc. Since high magical offense and high magical defense tend to go hand in hand, strong enemy magic exists as a significant and glaring weak point for the counts. I've had a lot of trouble as a result with lizard men and magic heavy high elf armies.
Since there's only so much extra magic oomph we have access to, the answer seems to be going in the other direction - looking for options that are less dependent on magic. Killer melee vamp lord builds. fearbombs. screamspam. heavy ethereal. black knight death stars. etc. None of these are especially overwhelming, either, but at least we have a lot of things we can try apart from the usual magic supported infantry horde. Again, good internal balance and lots of functional variety means there's a lot to keep us busy and engaged, even if we still have some notable and stubborn overall weaknesses (magic heavy and artillery heavy lists being the two big ones off the top of my head).