Consdier this a silly question, if it is, but is there a floor betwixt mill and pump?
i.e. have you either:
- Built your pump on the first subterranean Z-level, but not made a channel into it, or
- Built your pump above ground and then built a floor to put your windmill on above it, and not left one tile free.
In the latter case, I
think you can build a windmill directly above without (apart from a stairway access) any other support than the pump/gear/millstone you're powering, and it'll indicate the windmill as hanging. For aesthetic purposes (or a misplaced sense of physics that is as superfluous) you can build an eight-square floor above the pump (with at least one wall/Support/terrain-block being used for support, either effectively next the pump one one tile away) which is a 3x3 missing the centre, the centre being over the pump (output end, if not either), and then build your windmill on that, in which case it'll have a stable surface.
When on the ground, powering the pump below, the central hole is where you channel, or else where you channel is where you'll need to put the windmill centrally over.
Certainly when powering a multi-subterrainean pump, I'll generally build a pump in a prepared bit of corridor that has a channel into it from above at the output end[1], and then usually put a gear (hanging, but not supporting anything else) in the level above that I can link to a lever, put another gear adjacent to it (not diagonally) in a cell with a channel in from above, and this considers itself to have a stable base. Then in each subsequent higher level (channeled in again) it's a hanging vertical axle, until the first above-ground level with space for a windmill (uneven terrain might necessitate one more vertical axel) where I plonk one on the top.
But if I somehow forget to channel at any time, I (think I) end up with a disconnect, and I need to dismantle, solve the problem and reconstruct, or the power goes nowhere. This sounds quite similar to your problem, just without all the intermediate links.
i.e, if you have:
\ /
O
/|\
_____|_____
### ### ### ### ###
_ _ _ _
/ \ _ _ \
|O|_ _ _|
\ /_ _ _/
### ### ### ### ~~~
### ### ### ### ~~~
### ### ### ### ~~~
### ### ### ### ~~~
...try:
\ /
O
/|\
_____|_____
### ### V ### ###
_A_ _ _
~~~ ~~~/~\ _ _ \
~~~ ~~~|~|_ _ _|
~~~ ~~~\~/_ _ _/
### ### ### ### ~~~
### ### ### ### ~~~
### ### ### ### ~~~
### ### ### ### ~~~
(Where the "V" and "A" are an indicators of the connection, not something you have to insert. Just as I've deliberately scaled it up so you don't mistake characters for 1:1 relationships with your screen, sideways or otherwise.)
[1] I may be wrong. When I'm in-game it's logical enough.