I think there are no perfect solutions for the bottleneck node problem. Though there are some alternative solutions for them, such as more powerful bottleneck node or using some moving node to do the work for the bottle node. Some other solutions may be distributed computation in some specific situations, however, the information should be collected and computed in a central fashion may be fact of some wireless sensor networks.
The only way to avoid or reduce the bottle neck problem by sending a piggyback msg to the sender of msgs thro the ack packets so as to reduce the dumping rate on the network till a +ve ack is come back to the sender. On receiving such +ve ack, then only the sender can increase the dumping rate. Simultaneously, the sender has to search the alternate way to the receiver to avoid future problems of such bottle neck situations