Navmesh (as well as a grid) is a graph and you can use A* to find polygonal path between points. Then you can smooth out the path according to your needs.
As for OBBs. Obviously, you need to use simplified (in any way) mesh to build navmesh. OBBs might work, but you need to handle cases where there is one OBB (obstacle) inside the other one (room) (or you might exclude obstacles from your navmesh at all, if you're sure your collision avoidance system will handle them). Plus it is better to slightly extrude obstacle OBBs and squeeze rooms one. And I would not give up the idea of using polygons. If you have simplified mesh of your level, you can use simple algorithm to merge triangles into concave polygons and use them as navmesh.
As for generating navmesh on the fly. Answer depends on how big and dense your levels are. It might be possible, but I'd do navmesh generation and editing in level editor if possible.
As for dodging, you just check whether you can move agent along specified direction. You raycast from initial position, check if you hit an edge of navmesh polygon. If this edge is passable you continue raycasting in an adjacent polygon until either you hit non-passable edge (then you cant dodge in this direction), either ray ends (dodging is possible). Same goes for other things like waiting till a corridor is clear: you check whether closest agents are in direct visibility
Check this article for some more details (plus more links in the end):
Edited by Alex Mekhed, Today, 07:18 AM.